Pagini recente » Cod sursa (job #2193412) | Cod sursa (job #735881) | Cod sursa (job #2552584) | Cod sursa (job #1165233) | Cod sursa (job #1415845)
#include <stdio.h>
#include <stdlib.h>
char ciur[1000001];
int pr[1000001];
int main()
{
long long n,nr,i,q,div,e,exp,put,j,z;
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%lld",&n);
z=0;
for(i=2; i<=n; i++)
if(ciur[i]==0){
for(j=i*i; j<=n; j+=i)
ciur[j]=1;
pr[++z]=i;
}
nr=1;
for(i=1; i<=n; i++)
{
q=i;
div=1;
e=1;
while(pr[div]*pr[div]<=q)
{
exp=0;
put=1;
while(q%pr[div]==0)
exp++,q/=pr[div],put*=pr[div];
if(exp>0)
e*=(pr[div]-1)*put/pr[div];
div++;
}
if(q>1)
e*=(q-1);
if(i==1)
e--;
nr+=(2*e);
}
printf("%lld\n",nr);
return 0;
}