Cod sursa(job #3252749)

Utilizator Cristian_NegoitaCristian Negoita Cristian_Negoita Data 30 octombrie 2024 21:18:13
Problema Fractii Scor 100
Compilator cpp-64 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");
#define int long long

const int NMAX = 1e6 + 5;
int phi[NMAX];
void build_phi()
{
    for(int i = 1; i < NMAX; i++)
        phi[i] = i;
    for(int i = 2; i < NMAX; i++)
    {
        if(phi[i] == i)
        {
            phi[i]--;
            for(int k = 2 * i; k < NMAX; k += i)
                phi[k] = phi[k] / i * (i - 1);
        }
    }
}

int32_t main()
{
    build_phi();
    int n;
    fin >> n;
    int ans = 0;
    for(int i = 1; i <= n; i++)
        ans += 2 * phi[i];
    fout << ans - 1 << "\n";

    fin.close();
    fout.close();
    return 0;
}