Cod sursa(job #575488)

Utilizator elfusFlorin Chirica elfus Data 8 aprilie 2011 13:13:27
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
#define LMAX 100100
int ciur[LMAX];

void make_ciur()
{
	int i,j;
	for(i=1;i<=100000;i++)
		ciur[i]=i;
	for(i=2;i<=100000;i++)
		if(ciur[i]==i)
			for(j=i;j<=100000;j+=i)
				ciur[j]=(long long)ciur[j]*(i-1)/i;
}

int main()
{
	int n,x;
	long long rez;
	
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	
	make_ciur();
	
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&x);
		rez=(long long)ciur[x]*x<<1;
		printf("%lld\n",rez);
	}
	
	return 0;
}