Cod sursa(job #1335009)

Utilizator PikachuPikachu Pikachu Data 4 februarie 2015 20:56:23
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>

using namespace std;

const int NMAX = 100000;

long long c[NMAX + 10];

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

int main() {
	freopen("sum.in", "r", stdin);
	freopen("sum.out", "w", stdout);

	ciur();
	int t, x;
	scanf("%d", &t);

	for( ; t; -- t) {
		scanf("%d", &x);
		printf("%lld\n", x * c[x] * 2);
	}

	return 0;
}