Cod sursa(job #2271066)

Utilizator sandupetrascoPetrasco Sandu sandupetrasco Data 27 octombrie 2018 23:35:02
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#define MOD 1000000
using namespace std;
typedef long long ll;
typedef pair< int , int > PII;

ll n, rs;
vector < ll > phi;

void get(){
    phi[1] = 1;
    for (int i = 2; i <= MOD; i++){
        if (!phi[i]){
            phi[i] = i - 1;

            for (int j = i + i; j <= MOD; j += i){
                if (!phi[j]) phi[j] = j;

                phi[j] -= (phi[j] / i);
            }
        }
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    ifstream cin("fractii.in");
    ofstream cout("fractii.out");

	cin >> n;
    phi.resize(MOD + 1);
    get();
    
    for (int i = 2; i <= n; ++i){
        rs += phi[i] - 1;
    }

    cout << 2LL * (rs + n) - 1;

	return 0;
}