据说这是欧几里得辗转相除法?

#include <iostream>
using namespace std;

int gcd(int a, int b)
{
    return b == 0 ? a : gcd(b, a % b);
}

int lcm(int a,int b)
{
    return(a / gcd(a,b) * b);
}

int main()
{
    int a, b;
    while(cin >> a >> b)
    {
        cout << "最小公倍数 : " << lcm(a, b) << '\n';
        cout << "最大公因数 : " << gcd(a, b) << '\n';
    }
    return 0;
}