求两个整数的最大公约数,最经典的做法是利用辗转相除法:不断用较小数去除较大数,并用余数替代被除数,直到余数为 0,此时的除数就是最大公约数。

C 语言实现

int gcd(int x,int y)
{
	int temp=0;
	while(y)
	{
	    temp=y;
	    y=x%y;
	    x=temp;
	}
	return x;
}

最小公倍数=x*y/gcd(x,y)

有了 gcd 之后,求最小公倍数就非常容易:两数乘积除以它们的最大公约数,即 x * y / gcd(x, y)