Mai intai trebuie sa te autentifici.
Cod sursa(job #188891)
Utilizator | Data | 10 mai 2008 17:48:26 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<stdio.h>
unsigned long long phi[1000001],i,j,k,sol,n;
int main()
{
freopen("fractii.in","rt",stdin);
freopen("fractii.out","wt",stdout);
scanf("%llu",&n);
phi[1]=1;sol=1;
for(i=2;i<=n;i++)
{ if(!phi[i])
{ phi[i]=i-1;
for(j=i*i;j<=n;j+=i)
{ if(phi[j])continue;
phi[j]=i;
}
}
else
{ j=phi[i]; phi[i]=j-1; k=i/j;
while(k%j==0){phi[i]*=j;k/=j;}
phi[i]*=phi[k];
}
sol+=2*phi[i];
}
return 0;
}