Pagini recente » Cod sursa (job #568827) | Cod sursa (job #858773) | Cod sursa (job #918998) | Cod sursa (job #1826952) | Cod sursa (job #569221)
Cod sursa(job #569221)
#include<stdio.h>
#include<math.h>
long n;
long v[1000000];
long isprime(long x)
{
if(x==0 || x==1 || (x%2==0&&x!=2))
return 0;
long lim;
lim=sqrt(x);
long d;
for(d=3;d<=lim;++d)
if(x%d==0) return 0;
return 1;
}
long retfpf(long x)
{
long lim;
long i;
for(i=2;i<=n;i++)
if(isprime(i) && x%i==0) return i;
return 0;
}
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
long i,j;
long fpf;
scanf("%ld",&n);
for(i=1;i<=n;++i)
v[i]=i;
for(i=2;i<=n;++i)
{
if(!isprime(i))
continue;
fpf=retfpf(i);
for(j=i;j<=n;j+=i)
v[j]=(v[j]/fpf)*(fpf-1);
}
long long s;
s=0;
for(i=2;i<=n;++i)
s+=v[i];
s*=2;
s+=1;
printf("%lld",s);
return 0;
}