# PBinfo #410 – cmmdc2 – Rezolvare C++

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

## Enunț

Cerinţa
Se citește un număr natural n. Acest număr se “împarte” în alte două numere a și b, astfel: a este format din cifrele din prima jumătate a lui n, b este format din cifrele din a doua jumătate a lui n. Dacă n are număr impar de cifre, cifra din mijloc se ignoră. De exemplu, dacă n=9183792, atunci a=918, iar b=792. Să se determine cel mai mare divizor comun al lui a și b.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieşire
Programul afișează pe ecran numărul X, reprezentând valoarea cerută.

Restricţii şi precizări

10 ≤ n ≤ 1.000.000.000

Exemplu:
Intrare

9183792
Ieșire

18

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n, temp, a, b, nrcif = 0, val = 1;
    cin >> n; temp = n;
    while (n != 0) {
        n = n / 10;
        nrcif++;
    } for (int i = 1; i <= nrcif / 2; i++) val = val * 10;
    if (nrcif % 2 == 0) {
        b = temp % val;
        a = temp / val;
    } else if (nrcif % 2 == 1) {
        b = temp % val;
        a = temp / (val * 10);
    } while (b != 0) {
        temp = a % b;
        a = b;
        b = temp;
    } cout << a;
    return 0;
}
```

## Resurse

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