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
#include <bits/stdc++.h> using namespace std; int main () { int n; cin >> n; int m=n; int a , b; int cnt=0; int p = 1; int r; while(n) { n/=10; cnt++; } for (int i = 1; i <= cnt/2; ++i) p*=10; if (cnt%2==0) { b = m % p; a = m / p; } else if (cnt%2==1) { b = m % p; a = m / (p*10); } while (b) { r=a%b; a=b; b=r; } cout << a; return 0; }