Cod sursa(job #1051277)
Utilizator | Tenea Mihai rexlcd | Data | 9 decembrie 2013 21:36:31 |
---|---|---|---|
Problema | Sum | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <cstdio>
using namespace std;
const int MAX_X = 100002;
int N;
int phi[MAX_X];
int main() {
freopen("sum.in", "r", stdin);
freopen("sum.out", "w", stdout);
for(int i = 2; i < MAX_X; ++i)
phi[i] = i - 1;
for(int i = 2; i < MAX_X; ++i)
for(int j = 2 * i; j < MAX_X; j += i)
phi[j] -= phi[i] ;
scanf("%d", &N);
for(int i = 1, x; i <= N; ++i) {
scanf("%d", &x);
printf("%lld\n", (long long) 2 * phi[x] * x);
}
return 0;
}