Cod sursa(job #2133955)

Utilizator SonicAndreiAndrei Vaida SonicAndrei Data 17 februarie 2018 14:53:07
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;


int cmmdc(int a, int b) {
    while (a != b) {
        if (a > b)
            a = a - b;
        else
            b = b - a;
    }
    return a;
}


int main() {
    int N, P, Q, nrFractii;

    // 1. Citire N
    ifstream fin ("fractii.in");
    fin >> N;
    fin.close();
    if (N < 1 || N > 1000000) {
        cout << "N trebuie sa fie cuprins intre 1 si 1 milion.";
        return 1;
    }

    // 2. Determinare fracții ireductibile
    nrFractii = N * 2 - 1;  // „unu/orice” și „orice/unu” este ireductibil
    for (P = 2; P < N; P++) {
        for (Q = P+1; Q <= N; Q++) {
            if (cmmdc(P,Q) == 1)
                nrFractii += 2;
        }
    }

    // 3. Printarea numărului
    ofstream fout ("fractii.out");
    fout << nrFractii;
    fout.close();

    return 0;
}