Pagini recente » Cod sursa (job #2091177) | Cod sursa (job #1766243) | Cod sursa (job #2424250) | Cod sursa (job #2526191) | Cod sursa (job #2161847)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
long long int euler[1000000],n,s=1;
int cmmdc(long long int a,long long int b)
{
if(!b)
return a;
else return cmmdc(b,a%b);
}
int prim(long long int var)
{
int nr=0;
for(int i=2;i<=sqrt(var);i++)
if(var%i==0)
nr++;
if(!nr)
return 1;
else return 0;
}
void euler_indicator()
{
euler[1]=1;
euler[2]=1;
int s=1;
for(int i=2;i<=n;i++)
if(prim(i))
{
s+=2*(i-1);
for(int j=2;i*j<=n;j++)
euler[i*j]=0;
}
else
{
int nr=0;
for(int j=1;j<i;j++)
if(cmmdc(i,j)==1)
nr++;
s+=2*nr;
}
g<<s;
}
int main()
{
f>>n;
euler_indicator();
return 0;
}