Pagini recente » Cod sursa (job #1187963) | Cod sursa (job #2004975) | Cod sursa (job #562871) | Cod sursa (job #1725314) | Cod sursa (job #26898)
Cod sursa(job #26898)
#include<stdio.h>
long long int p[1000],l,d,prim,i,x,j,viz[200001],n,e,x1,s,sc;
int main()
{
p[1]=2;l=1;
d=3;
do{prim=1;
for(i=1;(p[i]*p[i])<=d;i++)
if(d%p[i]==0) {prim=0;break;}
if(prim) {l++;p[l]=d;}
d=d+2;}
while(d<=600);
FILE *f,*g;
f=fopen("sum.in","r");
g=fopen("sum.out","w");
fscanf(f,"%lld",&n);
for(i=1;i<=n;i++)
{ fscanf(f,"%lld",&x);s=0;
for(j=1;j<=x;j++)viz[j]=0;
s=x*(2*x+1);x1=x;
for(j=1;p[j]*p[j]<=x1;j++)
{ if(x1%p[j]==0)
{ while(x1%p[j]==0)x1/=p[j];
e=p[j];
sc=e;
while(sc<=x)
{ if(viz[sc]==0)
{viz[sc]=1;s-=x+2*sc;}
sc+=e;
}
}
if(x1>1)
{ e=x1;
sc=e;
while(sc<=x)
{ if(viz[sc]==0)
{viz[sc]=1;s-=x+2*sc;}
sc+=e;
}
}
}
fprintf(g,"%lld",s);
}
fcloseall();
return 0;
}