Pagini recente » Cod sursa (job #2202508) | Cod sursa (job #3041536) | Cod sursa (job #2464997) | Cod sursa (job #1248304) | Cod sursa (job #1024372)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
bool c[500000];
int v[100],u,x;
int euller(int y)
{
int i=0;
int inainte=y;
while(y!=1)
{if(y%v[i]==0)
{inainte=inainte*(v[i]-1)/v[i];
while(y%v[i]==0)
y=y/v[i];
}
i++;
}
return inainte;
}
void ciur()
{ bool c[1000000];
int i,j;
u=1;
v[0]=2;
for(i=3;i<=x;i=i+2)
if(!c[i])
{c[i]=true;
v[u]=i;
u++;
for(j=i;j<=x;j=j+i)
c[j]=true;
}
}
int main()
{
int i,cate=0;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
fin>>x;
ciur();
for(i=1;i<=x;i++)
cate=cate+euller(i);
fout<<cate*2-1;
return 0;
}