Pagini recente » Cod sursa (job #942905) | Cod sursa (job #626174) | Cod sursa (job #975264) | Cod sursa (job #1670280) | Cod sursa (job #1024398)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
bool c[499993];
int v[79000],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()
{
int i,j;
u=1;
v[0]=2;
for(i=3;i<=x;i=i+2)
if(!c[(i-1)/2])
{c[(i-1)/2]=true;
v[u]=i;
u++;
for(j=2*i;j<=x;j=j+i)
if(j%2==1)
c[(j-1)/2]=true;
}
}
int main()
{
int i;
long 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;
}