Pagini recente » Cod sursa (job #1946476) | Cod sursa (job #2832789) | Cod sursa (job #2849216) | Cod sursa (job #361684) | Cod sursa (job #246914)
Cod sursa(job #246914)
#include<stdio.h>
long int N,i,p,k,j,primes[7]={2,3,5,7,11,13,17},div[7],ratio=1;
long long int S;
float tot;
void totient(long int a)
{
tot=a;
j=ratio=1;
i=2;
while(a!=1)
{
if(a%i==0)
{
div[j]=i; j++;
while(a%i==0)
{
a/=i;
}
}
i+=ratio;
if(i==3) ratio ++;
}
for(i=1;i<=j-1;i++)
{
tot*=1-float(1/float(div[i]));
}
}
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%ld",&N);
for(k=1;k<=N;k++)
{
if(k==1) tot=1;
else
totient(k);
S+=int(tot);
}
printf("%lld",S*2-1);
fcloseall();
return 0;
}