Cod sursa(job #2738043)

Utilizator trucker4lifeMoraru Radu-Andrei trucker4life Data 5 aprilie 2021 13:54:20
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector<int> phi;

void totient(int n) {
    for (int i = 0; i <= n; i++)
        phi[i] = i;

    for (int i = 2; i <= n; i++) {
        if (phi[i] == i) { // if i is prime
            for (int j = i; j <= n; j += i)
                phi[j] -= phi[j] / i;
        }
    }
}

int main() {
    ifstream fin("fractii.in");
    ofstream fout("fractii.out");

    int n;

    fin >> n;
    phi = vector<int>(n + 1);
    totient(n);

    long long count = 1;
    for (int i = 2; i <= n; i++) {
        count += 2 * phi[i];
    }

    fout << count;
}