Cod sursa(job #531253)

Utilizator mihai995mihai995 mihai995 Data 9 februarie 2011 11:52:51
Problema Sum Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <fstream>
using namespace std;

const int N=200001;
int v[N],p[N];

ifstream in("sum.in");
ofstream out("sum.out");

void ciur()
{
	long long i,j;
	for (i=2;i<N;i++)
		v[i]=p[i]=i;
	for (i=2;i<N;i++)
		if (v[i]==i)
			for (j=i;j<N;j+=i)
				v[j]=v[j]/i*(i-1);
	for (i=2;i*i<N;i++)
		if (p[i])
		{
			for (j=i*i;j<N;j+=i)
				p[j]=0;
			p[i]+=p[i-1];
		}
}

int main()
{
	long long t,x;
	in>>t;
	ciur();
	while (t--)
	{
		in>>x;
		out<<(long long)2*x*v[x]<<"\n";
	}
	return 0;
}