Cod sursa(job #349574)
| Utilizator | Data | 20 septembrie 2009 10:57:59 | |
|---|---|---|---|
| Problema | Fractii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.42 kb |
#include<fstream.h>
unsigned long long n,i,j,p,v[1000001],sol=1;
int main()
{ifstream q("fractii.in");
ofstream w("fractii.out");
q>>n;
for(i=2;i<=n;i++)
{if(!v[i])
{v[i]=i-1;
for(j=i*i;j<=n;j=j+i)
v[j]=i;}
else
{p=v[i];
j=i;
v[i]=p-1;
j=j/p;
while(j%p==0)
{v[i]=v[i]*p;
j=j/p;}
if(j>1)
v[i]=v[i]*v[j];}
sol=sol+2*v[i];}
w<<sol;
return 0;
}
