Cod sursa(job #812591)

Utilizator vld7Campeanu Vlad vld7 Data 14 noiembrie 2012 01:05:22
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

#define MAX_X 100005

using namespace std;

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

int phi[MAX_X];
bool used[MAX_X];

void ciur()
{
	for (int i = 2; i <= MAX_X; i++) {
		int cnt = 0;
		
		if (!used[i]) {
			used[i] = true;
			cnt = 1;
		}
		for (int j = 2 * i; j <= MAX_X; j += i) {
			phi[j] -= cnt;
			if (!used[j]) {
				used[j] = true;
				cnt++;
			}
		}
	}
}

int main()
{
	int N, X;
	
	phi[1] = 1;
	for (int i = 2; i <= MAX_X; i++)
		phi[i] = i - 1;
	ciur();
	
	f >> N;
	while (N--) {
		f >> X;
		g << 1LL * 2 * X * phi[X] << '\n';
	}
	
	f.close();
	g.close();
	
	return 0;
}