Cod sursa(job #2544088)

Utilizator nicu_ducalNicu Ducal nicu_ducal Data 11 februarie 2020 19:21:43
Problema Fractii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define pb push_back
#define fi first
#define se second
typedef unsigned long long ul;
typedef long long ll;
using namespace std;

ll n, ans = 0;

ll phiCalc(ll n)
{
    if (n == 1 || n == 0)
        return 1;
    ll phi = n;
    for (ll p = 2; p * p <= n; p++)
    {
        if (n % p == 0)
        {
            while (n % p == 0) n /= p;
            phi -= phi / p;

        }
    }
    if (n > 1) phi -= phi / n;
    return 2 * phi;
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(); cout.tie();
    ifstream cin("fractii.in");
    ofstream cout("fractii.out");

    cin >> n;

    for (ll i = 1; i <= n; i++)
        ans += phiCalc(i);
    cout << ans;

    return 0;
}