Pagini recente » Cod sursa (job #2478016) | Cod sursa (job #2845021) | Cod sursa (job #1807414) | Cod sursa (job #2900487) | Cod sursa (job #1415828)
#include <stdio.h>
#include <stdlib.h>
long long put(long long n,long long p)
{
if(p==0) return 1;
if(p==1) return n;
if(p%2==0) return(put(n*n,p/2));
if(p%2==1) return(n*put(n*n,p/2));
}
int main()
{
long long n,nr,i,q,div,e,exp;
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%lld",&n);
nr=1;
for(i=1; i<=n; i++)
{
q=i;
div=2;
e=1;
while(div*div<=q)
{
exp=0;
while(q%div==0)
exp++,q/=div;
if(exp>0)
e*=(div-1)*put(div,exp-1);
div++;
}
if(q>1)
e*=(q-1);
if(i==1)
e--;
nr+=(2*e);
}
printf("%lld\n",nr);
return 0;
}