Cod sursa(job #3133924)

Utilizator Traian_7109Traian Mihai Danciu Traian_7109 Data 27 mai 2023 16:14:36
Problema Sum Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("sum.in");
ofstream fout("sum.out");

const int VALMAX = 1e5;
int phi[VALMAX+5];

void precalculate()
{
    for (int i = 1; i <= VALMAX; i++) phi[i] = i;

    for (int i = 2; i <= VALMAX; i++)
        if (phi[i] == i) {
            phi[i]--;

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

class query {
    private:
        int x;
    
    public:
        void read()
        {
            fin>>x;
        }

        void solve()
        {
            fout<<2ll*x*phi[x]<<'\n';
        }
};

int main()
{
    ios_base :: sync_with_stdio(false);
    fin.tie(nullptr), fout.tie(nullptr);

    precalculate();
    int t;
    query q;
    fin>>t;

    while (t--) q.read(), q.solve();

    return 0;
}