Pagini recente » Cod sursa (job #702002) | Cod sursa (job #1127967) | Cod sursa (job #615767) | Cod sursa (job #3263458) | Cod sursa (job #1158820)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int main()
{
long long n,i,j,nr,phi,r=0,prim[100000],d;
int k=1;
prim[1]=2;
bool ok;
f>>n;
for(i=3;i<=n;i+=2)
{
ok=1;
for(d=3;d<=sqrt(i);d+=2)
if(i%d==0)
{
ok=0;
break;
}
if(ok)
{
k++;
prim[k]=i;
}
}
r=1;
for(i=2;i<=n;i++)
{
nr=i;
phi=nr;
for(j=1;prim[j]<=sqrt(nr);j++)
{
if(nr%prim[j]==0)
phi=(phi*(prim[j]-1))/prim[j];
while(nr%prim[j]==0)
nr/=prim[j];
}
if(nr>1)
phi=(phi*(nr-1))/nr;
r+=2*phi;
}
g<<r;
}