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