Cod sursa(job #111571)

Utilizator tudalexTudorica Constantin Alexandru tudalex Data 30 noiembrie 2007 18:02:28
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#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;
}