Cod sursa(job #819144)

Utilizator stefan.friptuPetru Stefan Friptu stefan.friptu Data 18 noiembrie 2012 16:20:30
Problema Sum Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <cstdio>
#include <cmath>

using namespace std;


int phi (int x)
{
	int lim=sqrt((double)x),e=0,d=2,r_phi=x;
	
	while(x>1 && d<=lim)
		{
			e=0;
			while(x%d==0)
				{
					x/=d;
					e++;
				}
			if(e)
				r_phi=r_phi/d*(d-1);
			d++;
		}
	if(x>1)
		r_phi=r_phi/x*(x-1);
	return r_phi;
}


int main()
{
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	int p,i,x,t;
	scanf("%d",&t);
	for(i=1;i<=t;i++)
		{
			scanf("%d",&x);
			p=phi(x);
			printf("%lld\n",(long long)p*2*x);
		}			
	return 0;
}