510
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;
}
Comentarii