两种方法1.递归,2.辗转相除法


using namespace std;
typedef long long ll;
//递归
ll gcd(ll a,ll b)
{
    return b == 0? a: gcd(b,a%b);
}
//辗转相除法
ll gcd_1(ll a,ll b)
{
    while(b)
    {
        ll c = a%b;
        a = b;
        b = c;
    }
    return a;
}
int main()
{
    ll a,b;
    while(cin>>a>>b)
    {
        ll m = gcd(a,b);
        ll p = a/m*b;//防止溢出
        cout << m << " "<<p<<endl;
    }
    return 0;
}