Cod sursa(job #2257738)

Utilizator alexandru.morusAlexandru Morus alexandru.morus Data 10 octombrie 2018 14:23:23
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
 
using namespace std;
const int NMAX = 100000;
 
int eul[NMAX+1];
 
void euler() {
    for(int i = 1; i <= NMAX; i++) eul[i] = i;
    for(int i = 2; i <= NMAX; i++)
        if (eul[i] == i)
            for(int j = i; j <= NMAX; j += i)
                eul[j] /= i, eul[j] *= (i-1);
}
 
int main()
{
    freopen("sum.in", "r", stdin);
    freopen("sum.out", "w", stdout);
    euler();
    int n;
    scanf("%i", &n);
    while(n--) {
        int x;
        scanf("%i", &x);
        printf("%lld\n", 2LL * x * eul[x]);
    }
    return 0;
}