Cod sursa(job #1536128)

Utilizator algebristulFilip Berila algebristul Data 25 noiembrie 2015 19:13:29
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>*
#include <cstdio>

using namespace std;

const char * FILEIN = "fractii.in";
const char * FILEOUT = "fractii.out";
const int NMAX = 1000005;

int phi[NMAX];

void build() {
    for (int i = 1; i < NMAX; i++) {
        phi[i] = i-1;
    }

    for (int d = 2; d * d < NMAX; d++) {
        for (int j = 2*d; j < NMAX; j += d) {
            phi[j] -= phi[d];
        }
    }
}

int main() {
    freopen(FILEIN, "r", stdin);
    freopen(FILEOUT, "w", stdout);

    int n;

    cin >> n;

    build();

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

    ans = ans * 2 + 1;
    cout << ans << '\n';

    return 0;
}