Pagini recente » Cod sursa (job #975934) | Cod sursa (job #2902725) | Cod sursa (job #1323491) | Cod sursa (job #25100) | Cod sursa (job #170623)
Cod sursa(job #170623)
#include<stdio.h>
#define NMAX 100000L
int main()
{
unsigned long long n,x,y,i,v[NMAX],fp[100],k,d,j,sp,c,pfp,r,ii,cc,sc;
unsigned long long st;
freopen("sum.in","r",stdin);
FILE *fout=fopen("sum.out","w");
scanf("%llu",&n);
for(i=0;i<n;i++) scanf("%llu",&v[i]);
for(i=0;i<n;i++){
x=v[i];
st=x*(2*x+1);
fp[0]=0;
k=1;
if(x%2==0) {fp[k++]=2;while(x%2==0) x/=2;}
for(d=3;d<=x;d=d+2)
if(x%d==0) {fp[k++]=d;while(x%d==0) x/=d;}
for(j=1;j<k;j++){
c=v[i]/fp[j];
sp=fp[j]*c*(2*c+1);
for(ii=1;ii<j;ii++){
cc=c/fp[ii];
sc=fp[j]*fp[ii]*cc*(2*cc+1);
sp-=sc;
}
st-=sp;
}
fprintf(fout,"%llu\n",st);
}
fclose(fout);
return 0;
}