Cod sursa(job #531241)

Utilizator ioanabIoana Bica ioanab Data 9 februarie 2011 11:35:03
Problema Sum Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <cstdio>
using namespace std;

const int N=100004;
int e[N];

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

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