Cod sursa(job #313105)
Utilizator | Stana Adriana Teodora adrianastana | Data | 7 mai 2009 23:15:39 |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream.h>
#include <math.h>
int main ()
{ long v[1000001],p,e,y,n,z,i,j,x,nrf;
long long nr,rad;
ifstream f("fractii.in");
ofstream g("fractii.out");
f>>n;
v[1]=1;
for (i=2;i<=n;i++)
{ x=i;
p=2;
z=1;
rad=sqrt(x);
while (p<=rad && x%p>=1) p++;
if (p>rad) v[i]=i-1;
else {
y=x;
e=0;
while (y%p==0)
{
y/=p;
e++;
z=z*p;
}
z=z/p;
v[x]=v[y]*(p-1)*z;
}}
nr=1;
for (i=2;i<=n;i++)
nr=nr+2*v[i];
g<<nr;
f.close();
g.close();
return 0;