Cod sursa(job #3279249)

Utilizator Carnu_EmilianCarnu Emilian Carnu_Emilian Data 22 februarie 2025 11:40:21
Problema Sum Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fcin("sum.in");
ofstream fcout("sum.out");

const int N = 1e5 + 5;
int phi[N];
long long s[N], r[N];
int t, x;

void precalc()
{
    /// n(1 - 1/p1)(1 - 1/p2)
    for (int i = 2; i < N; i++)
        phi[i] = i;
    for (int i = 2; i < N; i++)
        if (phi[i] == i)
            for (int j = i; j < N; j += i)
                phi[j] = phi[j] / i * (i - 1);
    for (int i = 2; i < N; i++)
        s[i] = 1ll * i * phi[i] / 2;
    for (int i = 2; i < N; i++)
        r[i] = 2 * s[i] + 1ll * phi[i] * i;
}

int main()
{
    precalc();
    fcin >> t;
    while (t--)
    {
        fcin >> x;
        fcout << r[x] << '\n';
    }
    return 0;
}