Cod sursa(job #1868455)
| Utilizator | Data | 4 februarie 2017 22:44:40 | |
|---|---|---|---|
| Problema | Sum | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <cstdio>
int phi[200001];
int main() {
int n, x;
for(int i = 2; i <= 200000; ++i)
phi[i] = i;
for(int d = 2; d <= 200000; ++d)
if(phi[d] == d)
for(int i = d; i <= 200000; i = i + d)
phi[i] = phi[i] - phi[i] / d;
FILE *fin = fopen("sum.in", "r");
FILE *fout = fopen("sum.out", "w");
fscanf(fin, "%d", &n);
for(int i = 0; i < n; ++i) {
fscanf(fin, "%d", &x);
fprintf(fout, "%lld\n", (long long)phi[x] * x * 2);
}
fclose(fin);
fclose(fout);
return 0;
}
