Cod sursa(job #120547)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 5 ianuarie 2008 20:39:25
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>
using namespace std;
long long u[100005],tot[100005];
void totient()
	{
	long i,j;
	for (i=2;i<=100001;i++)
		tot[i]=i;
	for (i=2;i<=100001;i++)
		{
		if (u[i]==0)
			{
			j=1;
			while(i*j<=100001)
				{
				u[i*j]=1;
				tot[i*j]=tot[i*j]-(tot[i*j]/i);
				j++;
			}	}
		}
	}
int main()
{ long long n,sol,x,i;

FILE*f=fopen("sum.in","r");
FILE*g=fopen("sum.out","w");
fscanf(f,"%lld",&n);
totient();
for (i=1;i<=n;i++)
	{
	fscanf(f,"%lld",&x);
	sol=2*x*tot[x];
	fprintf(g,"%lld\n",sol);
	}
return 0;
}