Pagini recente » Cod sursa (job #299591) | Cod sursa (job #1850079) | Cod sursa (job #3240460) | Cod sursa (job #128912) | Cod sursa (job #1160367)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
bool ciur[1000001];
long long prim[200001];
int main()
{
long long i,k=0,r,phi,nr,n,j;
f>>n;
for(i=2;i<=n;i++)
ciur[i]=1;
for(i=2;i<=n;i++)
if(ciur[i])
for(j=2;i*j<=n;j++)
ciur[i*j]=0;
for(i=2;i<=n;i++)
if(ciur[i])
{
k++;
prim[k]=i;
}
r=1;
for(i=2;i<=n;i++)
{
phi=i;
nr=i;
for(j=1;prim[j]<=sqrt(nr)&&j<=k;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=r+2*phi;
}
g<<r;
return 0;
}