Cod sursa(job #147409)

Utilizator oumbraPaul Filimoon oumbra Data 2 martie 2008 21:24:16
Problema Sum Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>

#define SIZE 100001

int t, n;
double phi[200005];

void read()
{
	scanf("%d", &n);	
}

void solve()
{

}
int main()
{
        freopen("sum.in", "r", stdin);
        freopen("sum.out",  "w", stdout);

	scanf("%d", &t);
	
/*	for (int i = 1; i <= SIZE; ++i)
	    phi[i] = i-1;
	for (int i = 2; i <= SIZE; ++i)
	    for (int j = 2*i; j <= SIZE; j += i)
		{
		if(j <= 200000)
		        phi[j] -= phi[i];
		}
*/

        for(int i=1; i<=SIZE; i++)
                phi[i]=i;
        for(int i=2; i<=SIZE; i++)
                if(phi[i]==i)
                        for(int j=i; j<=SIZE; j+=i)
                        {
                                phi[j]/=i;
                                phi[j]*= (i-1);
                        }

	while(t)
	{
	read();

	printf("%.0f\n", 2*n*phi[n]);
	t--;
	}
	return 0;
}