Pagini recente » Cod sursa (job #3346761) | Cod sursa (job #3344499) | Monitorul de evaluare | Cod sursa (job #1914481) | Cod sursa (job #474461)
Cod sursa(job #474461)
#include <iostream.h>
#include<fstream.h>
ifstream f("fractii.in");
ofstream g("fractii.out");
unsigned long t,nr,a[1000000],i,j,n;
long double b[1000000];
void divizorip(int n)
{t=1;int i,aux=n;
for(i=2;i<=n/2;i++)
if(aux%i==0)
{b[t]=i;t++;
while(aux%i==0)aux/=i;
}
if(t==1)b[t]=n;
}
int phi(long n)
{int x=n,i;
divizorip(n);i=1;
while(i<=t)
{x=x*(b[i]-1)/b[i];
i++;
}
for(i=1;i<=t;i++)b[i]=0;
return x;
}
int main()
{
f>> n;
for(j=2;j<=n;j++)
a[j]=phi(j);
for(i=1;i<=n;i++)
nr+=a[i];
g<<2*nr+1;
return 0;
}