Cod sursa(job #2829692)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 8 ianuarie 2022 21:02:37
Problema Sum Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

inline void Open(const string Name) {
    #ifndef ONLINE_JUDGE
        (void)!freopen((Name + ".in").c_str(), "r", stdin);
        (void)!freopen((Name + ".out").c_str(), "w", stdout);
    #endif
}

int phi[100001];
int N;

void precompute() {
    for(int i = 1;i <= 100000;i++)
        phi[i] = i;

    for(int i = 2;i <= 100000;i++)
        if(phi[i] == i) {
            phi[i]--;
            for(int j = 2;i * j <= 100000;j++)
                phi[i * j] = phi[i * j] / i * (i - 1);
        }
}

void solve() {
    cin >> N;
    cout << 2LL * N * phi[N] << "\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    Open("sum");

    precompute();

    int T; cin >> T;
    for(;T;T--) {
        solve();
    }

    return 0;
}