Pagini recente » Cod sursa (job #1165871) | Cod sursa (job #2177944) | Cod sursa (job #203371) | Cod sursa (job #2415371) | Cod sursa (job #111571)
Cod sursa(job #111571)
#include <stdio.h>
int sol, x, t, i, n;
int s[100];
void calc_this()
{
int i = 0,j = 0, s_p = 0, p = 1, r, o;
for (i = 1; i < 1<<s[0]; ++ i)
{
p = 1;
printf("i = %d\n", i);
for (j = 0; j < s[0]; ++ j)
if ((1<<j) & i > 0 )
{
++s_p;
p *= s[j+1];
}
printf("p = %d\n", p);
o = x / p;
r = o*(o+1)/2;
r*= p;
if (s_p%2==1)
sol -= r;
else
sol += r;
}
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf("%d", &n);
for (;n>0; --n)
{
scanf("%d", &t);
s[0] = 0;
x = t*2;
sol = x*(x+1)/2;
for (i = 2; i <= t; ++i)
if (t % i == 0)
{
s[++s[0]] = i;
while ( t %i == 0)
t/=i;
}
printf("s = %d\n",s[0]);
calc_this();
printf("%d\n", sol);
}
return 0;
}