Cod sursa(job #107908)
| Utilizator | Data | 20 noiembrie 2007 21:11:34 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.42 kb |
#include<fstream.h>
void main()
{ unsigned long n,phi,d,k,x,f;
ifstream fin("fractii.in");
fin>>n;
fin.close();
f=0;
for (x=2;x<=n;x++)
{ phi=k=x;
d=2;
while (k>1 && d*d<=k)
if (k%d==0)
{ phi=phi*(d-1)/d;
do
{ k/=d; }
while (k%d==0);
}
else d+=1+k%2;
if (k==1) f+=phi;
else f+=phi*(k-1)/k;
}
ofstream fout("fractii.out");
fout<<2*f+1;
fout.close();
}