Cod sursa(job #2949147)

Utilizator andu9andu nita andu9 Data 29 noiembrie 2022 23:29:15
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

std::ifstream fin("fractii.in");
std::ofstream fout("fractii.out");

long long phi (int n) {
    long long res = n;
    int div = 3, exp = 0;
    while (!(n & 1))
        exp += 1, n >>= 1;
    if (exp > 0)
        res /= 2;
    while (div * div <= n) {
        exp = 0;
        while (!(n % div))
            exp += 1, n /= div;
        if (exp > 0)
            res *= (1LL * (div - 1)), res /= div;
        div += 2;
    }
    if (n > 1)
        res *= (1LL * (n - 1)), res /= n;
    return res;
}

int main () {
    int n; fin >> n;
    long long res = 0;


    for (int i = 2; i <= n; i += 1)
        res += phi (i);
    fout << res * 2 + 1;
    return 0;
}