Cod sursa(job #53911)

Utilizator vicenzo_cnuStan Alexandru Dan vicenzo_cnu Data 23 aprilie 2007 18:24:05
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#define MAXN 1000005
#define MaxP 100005
long long a[MAXN],s;
long long i,n,b[MaxP],q,j;
FILE *f,*g;

int main()
{f=fopen("fractii.in","r");
g=fopen("fractii.out","w");
fscanf(f,"%lld",&n);
a[1]=1;b[1]=2;
a[2]=1;q=1;
for(i=4;i<=n;i*=2)
a[i]=a[i/2]*2;
for(i=3;i<=n;i+=2)
if(a[i]==0){a[i]=i-1;
for(j=i*i;j<=n;j*=i)
a[j]=a[j/i]*i;
for(j=1;j<=q;j++)
if(b[j]*i<=n)
a[b[j]*i]=a[b[j]]*a[i];
b[++q]=i;}
for(i=3;i<=n;i++)
if(a[i]==0)
for(j=1;i%b[j];j++)
a[i]=a[b[j]]*a[i/b[j]];
for(i=2;i<=n;i++)
s+=a[i];
fprintf(g,"%lld",s*2+1);
fclose(f);
fclose(g);
return 0;}