Pagini recente » Cod sursa (job #499952) | Cod sursa (job #67686) | Cod sursa (job #160393) | Cod sursa (job #1818220) | Cod sursa (job #477229)
Cod sursa(job #477229)
#include <fstream>
using namespace std;
bool prim[1000005];
int a[1000005];
int x,y,z,ind,nr,k;
unsigned long long suma;
int main()
{
int i,j,n;
ifstream fi("fractii.in");
ofstream fo("fractii.out");
fi>>n;
for(i=2;i<=1000000;i++)
if(!prim[i])
for(j=i+i;j<=1000000;j+=i)
{ prim[j]=1; a[j]=i;}
suma=0;
for(i=2;i<=n;i++)
{
if(!prim[i]) a[i]=i-1; else {
x=a[i];
y=i;
z=1;
while(y%x==0)
{ y/=x; nr++; z*=x; }
if(z!=i)
a[i]=a[z]*a[i/z]; else a[i]=(x-1)*(z/x);
}
suma+=a[i];
}
fo<<suma*2+1<<"\n";
return 0;
}