Cod sursa(job #2208796)

Utilizator Alex_BubBuburuzan Alexandru Alex_Bub Data 31 mai 2018 16:54:07
Problema Fractii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 1000000;

int phi[NMAX + 5];

int main()
{
    int n;

    fin >> n;

    fin.close();

    // phi(n) = n * ((p1 - 1) / p1) * ((p2 - 1) / p2) * ... * ((pn - 1) / pn);

    for(int i = 1; i <= n; i++) phi[i] = i;

    for(int i = 2; i <= n; i++) {
        if(phi[i] == i) {
            phi[i]--;

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

    long long sol = 0;

    for(int i = 1; i <= n; i++) sol += phi[i];

    fout << 2 * sol - 1;

    fout.close();

    return 0;
}