Pagini recente » Profil NoBark | Istoria paginii utilizator/brumaemamaria | Cod sursa (job #286746) | Rating Sabou Mihai (mihai_s) | Cod sursa (job #201847)
Cod sursa(job #201847)
#include <stdio.h>
#include <math.h>
int i,j,k,x,v,cop,n,d;
int div[20],ciur[200010];
long long sum;
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; i++)
{
scanf("%d",&x);
k=0;v=x;
if (x%2==0)
{
div[++k]=2;
while (x%2==0) x/=2;
}
while (x>1)
{
d=sqrt(x);cop=x;
for (j=3; j<=d; j+=2)
if (x%j==0)
{
div[++k]=j;
while (x%j==0) x/=j;
break;
}
if (x==cop) {div[++k]=x;x=1;}
}
x=v;
sum=(long long)x*(2*x+1);
for (j=1; j<=k; j++)
for (d=div[j]; d<=2*x; d+=div[j])
{
if (ciur[d]!=i) sum-=d;
ciur[d]=i;
}
printf("%lld\n",sum);
}
return 0;
}