Cod sursa(job #2470189)

Utilizator david.teacaDavid Stefan Teaca david.teaca Data 8 octombrie 2019 20:29:31
Problema Fractii Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MAXN = 1e6 + 10;

long long phi[MAXN], n;

void initialize() {
    for (int i = 1; i <= n; ++i)
        phi[i] = i;
}

void solve() {
    for (int i = 2; i <= n; ++i) {
        if (phi[i] == i) {
            phi[i] = i - 1;
            for (int j = 2 * i; j <= n; j += i)
                phi[j] = (phi[j] * (i - 1)) / i;
        }
    }
}

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

int main() {
    fin >> n;
    initialize();
    solve();
    fout << sum();
    return 0;
}