Pagini recente » Cod sursa (job #869833) | Cod sursa (job #133424) | Cod sursa (job #1218277) | Cod sursa (job #1840776) | Cod sursa (job #24336)
Cod sursa(job #24336)
#include<stdio.h>
long int l,d,prim,x[1000],p,n,i,j,sol,e,nc;
long int prim1000()
{
l=1;x[1]=2;d=3;
for(i=3;i<=999;i=i+2)
{ prim=1;
for(d=3;d*d<=i;d=d+2)
if(i%d==0) {prim=0;break;}
if(prim){l++;x[l]=i;}
}
return 0;
}
int main()
{
FILE *f=fopen("fractii.in","r");
fscanf(f,"%ld",&n);
fclose(f);
prim1000();
sol=1;
for(j=2;j<=n;j++)
{e=j;
nc=j;
for(i=1;i<=l;i++)
{if(x[i]*x[i]>nc)break;
if(nc%x[i]==0)
{e/=x[i];e*=x[i]-1;while(nc%x[i]==0)nc/=x[i];}
}
if(nc>1) {e/=nc;e*=nc-1;}
sol=sol+2*e;}
f=fopen("fractii.out","w");
fprintf(f,"%ld",sol);
fclose(f);
return 0;
}