Cod sursa(job #610315)
| Utilizator | Data | 26 august 2011 16:49:51 | |
|---|---|---|---|
| Problema | Sum | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <cstdio>
#define Xmax 100001
int N, X;
int P[Xmax];
void phi()
{
int d, i;
for (i=2; i<Xmax; ++i)
P[i] = i;
for (i=2; i<Xmax; i+=2)
P[i] = P[i] / 2;
for (d=3; d<Xmax; d+=2)
if (P[d] == d)
for (i=d; i<Xmax; i+=d)
P[i] = P[i] / d * (d-1);
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
phi();
scanf("%d", &N);
while (N--)
{
scanf("%d", &X);
printf("%lld\n", (long long)P[X] * 2 * X);
}
return 0;
}
