Pagini recente » Cod sursa (job #783065) | Cod sursa (job #1223673) | Cod sursa (job #2959419) | Cod sursa (job #902148) | Cod sursa (job #149924)
Cod sursa(job #149924)
#include<stdio.h>
#define NMAX 1001000
long s,x[NMAX],i,j,k,l,n,m;
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%ld",&n);
x[1]=1;
for (i=2;i<=n;i++)
if (x[i]==0)
for (j=i+i;j<=n;j+=i)
x[j]=1;
x[0]=0;
for (i=2;i<=n;i++)
if (x[i]==0)
x[++x[0]]=i;
x[x[0]+1]=n+1;
s=1;
for (i=2;i<=n;i++)
{
k=i;
l=i;
for (j=1;x[j]*x[j]<=i;j++)
if (l%x[j]==0)
{
k=k/x[j]*(x[j]-1);
while(l%x[j]==0)
l=l/x[j];
}
if (l!=1)
k=k/l*(l-1);
if (k==i) k--;
s+=k+k;
}
printf("%ld\n",s);
return 0;
}