Cod sursa(job #2949143)

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

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

int phi (int n) {
    int res = n, div = 3, exp = 0;


    while (!(n & 1))
        exp += 1, n >>= 1;
    if (exp > 0)
        res >>= 1;


    while (div * div <= n) {
        exp = 0;
        while (!(n % div))
            exp += 1, n /= div;
        if (exp > 0)
            res *= div - 1, res /= div;
        div += 2;
    }

    if (n > 1)
        res *= 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 += 1LL * phi (i);
    fout << 1 + 2 * res;
    return 0;
}