#include <iostream>
using namespace std;
typedef long long ll;
bool is_even(ll x)
{
if(x%2)
return 0;
else
return 1;
}
ll gcd(ll x,ll y)
{
if(x<y)
return gcd(y,x);
if(y==0)
return x;
if(is_even(x))
{
if(is_even(y))
return (gcd(x>>1,y>>1)<<1);//如果x、y是偶数,则x、y的
else //最大公约数gcd(x,y)==2*gcd(x/2,y/2)
return gcd(x>>1,y);
}
else
{
if(is_even(y))
return gcd(x,y>>1);
else
return gcd(y,x-y);//如果一个数能同时整除,和y,
} //则必能同时整除x-y和y
}
int main()
{
ll x,y;
while(cin>>x>>y)
{
cout<<x<<"和"<<y<<"的最大公约数是:";
cout<<gcd(x,y)<<endl;
}
return 0;
}