# PBinfo #58 – cmmdc – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerinţa
Să se scrie un program care să determine cel mai mare divizor comun a două numere naturale citite de la tastatură.

Date de intrare
Programul citește de la tastatură două numere naturale a și b.

Date de ieşire
Programul afișează pe ecran numărul x, cel mai mare divizor comun al numerelor a și b.

Restricţii şi precizări

0 <= a, b < 1.000.000.000
dacă ambele numere sunt egale cu 0 se va afișa valoarea -1

Exemplu:
Intrare

24 36
Ieșire

12

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
    int a, b, r; cin >> a >> b;
    if ( b!= 0)
        do {
            r = a % b;
            a = b;
            b = r;
        } while (r);
    else if (a == 0) a = -1;
    cout << a << endl;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/58)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/58/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-58/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
