Cod sursa(job #2854769)

Utilizator alexandru.ciorneiAlexandru-Stefan Ciornei alexandru.ciornei Data 21 februarie 2022 19:03:16
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

int cmmdc(int a, int b) {
    if(a < b)
        swap(a, b);
    int r = a % b;
    while (r != 0) {
        a = b;
        b = r;
        r = a % b;
    }
    return b;
}

int main() {
    ifstream fin ("fractii.in");
    ofstream fout ("fractii.out");

    int N;
    fin >> N;

    int *phi = new int[N];
    phi[1] = 0;

    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] = phi[j] / i * (i - 1);
        }
    }

    unsigned long long int nrfrac = 0;
    for (int i = 1; i <= N; i++)
        nrfrac += phi[i];
    fout << nrfrac;

    delete[] phi;
    return 0;
}