Pagini recente » Cod sursa (job #242540) | Cod sursa (job #307046) | Cod sursa (job #3128664) | Cod sursa (job #476983) | Cod sursa (job #222186)
Cod sursa(job #222186)
#include<stdio.h>
int k,nr,vf[200000];
inline long long GetDivis(int x)
{
long long sum,upper_lim,lm;
int i,j;
sum=0;
upper_lim=(x<<1);
vf[x]++;
sum+=x;
vf[upper_lim]++;
sum+=upper_lim;
for(i=2;i<=(x>>1);++i)
if(!(x%i))
{
lm=i;
for(j=1;lm<upper_lim;++j)
{
lm=i*j;
if(vf[lm]<k&&lm!=x&&lm!=upper_lim)
{ sum+=lm;vf[lm]++;}
}
}
return ((upper_lim*(upper_lim+1))>>1)-sum;
}
int main()
{
int n,x;
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf("%d",&n);
k=1;
while(n)
{
scanf("%d",&x);
printf("%lld\n",GetDivis(x));
k++;
n--;
}
return 0;
}