Cod sursa(job #150626)
Utilizator | Mathe Bogdan Zilla | Data | 7 martie 2008 10:04:47 |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 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/2;++j)
if(x%j==0 && a[j]!=1)
x-=x/j;
s+=x*2;
}
s+=1;
fprintf(g,"%ld",s);
fclose(g);
return 0;
}