Cod sursa(job #2964144)

Utilizator Luka77Anastase Luca George Luka77 Data 12 ianuarie 2023 14:11:12
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;

/// INPUT / OUTPUT
const string problem = "fractii";
ifstream fin(problem + ".in");
ofstream fout(problem + ".out");

/// GLOBAL VARIABLES
const int NMAX = 1e6+5, MOD = 1e9 + 7;
int n;
int euler[NMAX];
long long ans = 0;

/// SOLUTION
inline void solution()
{
    for(int i = 1; i <= n; ++ i)
    {
        euler[i] = i;
    }
    for(int i = 2; i <= n; ++ i)
    {
        if(euler[i] == i)
        {
            euler[i]--;
            for(int j = 2; i * j <= n; j++)
            {
                euler[i*j] = euler[i*j] / i * (i - 1);
            }
        }
        ans += euler[i];
    }
    fout << 2 * ans + 1;
}

/// READING THE INPUT
int main()
{
    ios::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);

    fin >> n;

    solution();
}