Cod sursa(job #355233)

Utilizator ioraIoana Radu iora Data 10 octombrie 2009 14:26:29
Problema Sum Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.41 kb
#include<cstdio>
const int NM=1<<17;
int e[NM];
void euler(int n)
{
	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()
{
	int N,i,x;
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	
	scanf("%d",&N);
	for(i=1;i<=N;++i)
	{
		scanf("%d",&x);
		euler(x);
		printf("%d\n",e[x]*2*x);
	}
	return 0;
}