Cod sursa(job #3273002)

Utilizator cristian46290Petre Cristian cristian46290 Data 1 februarie 2025 08:36:35
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda cex_8 Marime 0.73 kb
#include <iostream>
#include <fstream>

std::ifstream f("fractii.in");
std::ofstream g("fractii.out");

using namespace std;
typedef long long int ll;

const int nMax = 1e6 + 5;

int n;
ll fr[nMax];
bool ok[nMax];

void ciur()
{
    ok[0] = ok[1] = true;
    fr[0] = 0;
    fr[1] = 1;

    for (int i = 1;i <= nMax;i++)fr[i] = i;

    for (int i = 2;i <= nMax;i++){
        if (ok[i] == false){
            fr[i] = i - 1;
            for (int j = i * 2;j <= nMax;j+=i)fr[j] = fr[j] / i * (i - 1),ok[j] = true;
        }
    }
}

int main()
{
    ciur();
    f >> n;
    ll rez = 0;
    for (int i = 1;i <= n;i++)rez += fr[i];//,cout << fr[i] << " " << i << '\n';
    rez *= 2;
    rez--;
    g << rez;
}