Cod sursa(job #150367)
Utilizator | Mathe Bogdan Zilla | Data | 6 martie 2008 21:23:41 |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <stdio.h>
FILE *f=fopen("fractii.in","r"),*g=fopen("fractii.out","w");
long a[1000000],n,i,j,x,s;
int main()
{
fscanf(f,"%ld",&n);
for(i=2;i*i<=n;i++)
for(j=2;i*j<=n;j++)
a[j*i]=1;
for(i=n;i>=2;i--)
{
x=i;
if(a[x]==0)
x=x-1;
else
for(j=2;j<=x;j++)
if(x%j==0 && a[j]!=1)
x-=x/j;
s+=x*2;
}
s+=1;
fprintf(g,"%ld",s);
fclose(g);
return 0;
}