Se citește un număr natural n
. Acest număr se “împarte” în alte două numere x
și y
, astfel: x
este format din cifrele din prima jumătate a lui n
, y
este format din cifrele din a doua jumătate a lui n
. Dacă n
are număr impar de cifre, cifra din mijloc va fi prima cifră a lui y
. De exemplu, dacă n=88132
, atunci x=88
, iar y=132
.
Cerința
Să se determine cel mai mare divizor comun al lui x
și y
.
Date de intrare
Fișierul de intrare jumatate1.in
conține pe prima linie numărul n
.
Date de ieșire
Fișierul de ieșire jumatate1.out
va conține pe prima linie cel mai mare divizor
Exemplu
jumatate1.in
88132
jumatate1.out
44
Explicație
Numărul x
este 88
iar numărul y
este 132
. Cel mai mare divizor comun al lor este 44
.
#include <bits/stdc++.h> using namespace std; ifstream fin("jumatate1.in"); ofstream fout("jumatate1.out"); int cmmdc(int a,int b) { long long r,d; while(b!=0) { r=a%b; a=b; b=r; } d=a; return d; } int main() { long long n,m,p=1,d,r; long long a,b; fin>>n; long long aux=n; long long cate=0; while(aux!=0) { cate++; aux=aux/10; } if(cate%2==0) { while(cate/2>0) { p=p*10; cate-=2; } a=n%p; b=n/p; } else if(cate%2==1) { while(cate/2>0) { p=p*10; cate-=2; } a=n%(p*10); b=n/p/10; } fout<<cmmdc(a,b); return 0; }