Cod sursa(job #2244743)
Utilizator | Data | 23 septembrie 2018 16:15:32 | |
---|---|---|---|
Problema | Sum | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <cstdio>
#define NMAX 100000
int Euler[NMAX + 1];
int main()
{
freopen("sum.in", "r", stdin);
freopen("sum.out", "w", stdout);
int N, X;
//
for(int i = 1; i <= NMAX; i++)
Euler[i] = i - 1;
for(int i = 2; i <= NMAX; i++)
for(int j = i + i; j <= NMAX; j += i)
Euler[j] -= Euler[i];
//
scanf("%d", &N);
while(N--)
{
scanf("%d", &X);
printf("%lld\n", 2LL * X * Euler[X]);
}
return 0;
}