Cod sursa(job #108172)
| Utilizator | Data | 21 noiembrie 2007 18:35:27 | |
|---|---|---|---|
| Problema | Fractii | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include<stdio.h>
int main()
{ long long n,phi,d,k,x,f;
FILE *fin=fopen("fractii.in","r");
fscanf(fin,"%lld",&n);
fclose(fin);
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+d%2;
if (k==1) f=f+phi;
else f=f+phi*(k-1)/k;
}
FILE *fout=fopen("fractii.out","w");
fprintf(fout,"%lld",2*f+1);
fclose(fout);
return 0;
}