Cod sursa(job #2431162)

Utilizator aviciiTim Bergling avicii Data 18 iunie 2019 13:00:07
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const int N = (int) 1e6 + 7;
int phi[N];
ll sum = 0LL;

int main()
{
        freopen ("fractii.in", "r", stdin);
        freopen ("fractii.out", "w", stdout);

        int n;
        cin >> n;

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

        ll res = 2 * sum + 1;
        cout << res << "\n";

}