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