Cod sursa(job #216435)

Utilizator ilincaSorescu Ilinca ilinca Data 24 octombrie 2008 16:02:39
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include <stdio.h>

#define maxx 100005

int n, e [maxx];

void euler (int n)
{
	int i, j;
	for (i=1; i<=n; ++i)
		e [i]=i;
	for (i=2; i<=n; ++i)
	{
		if (e [i] == i)
		{
			--e [i];
			for (j=i+i; j<=n; j+=i)
				e [j]=e [j]/i*(i-1);
		}			
	}
}

int main ()
{
	int i, x;
	freopen ("sum.in", "r", stdin);
	freopen ("sum.out", "w", stdout);
	euler (maxx);
	scanf ("%d", &n);
	for (i=1; i<=n; ++i)
	{
		scanf ("%d", &x);
		printf ("%lld\n", (long long)e [x]*x*2);
	}
}