Cod sursa(job #531235)

Utilizator ioanabIoana Bica ioanab Data 9 februarie 2011 11:20:11
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 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,nr,x,sum;
	euler();
	scanf("%d",&n);
	for(k=1;k<=n;k++)
	{
		scanf("%d",&x);
		nr=x*(e[x]/2);
		sum=2*x*e[x];
		printf("%d\n",nr+sum-nr);
	}
	
	return 0;
}