从定义入手:
首先,从定义上我们理解两个数(以下简称a,b)的公倍数都能刚好整除a和b,也就是余数为0.考虑到最小公倍数可能在两个数之中(如20,10),我们仅需从a和b的较大值开始循环加1就能确保找到最小的公倍数,并通过公式a*b=最大公约数*最小公倍数算出最大公约数。
辗转相除法
第二种方法是利用了递归技巧的辗转相除法,通过a与b相除并建立函数不断地将除数赋值给被除数,将余数赋值给被除数的方法,当余数等于0时,这个式子的除数就是a与b的最大公约数。不用担心较小数除较大数,在下一次进入函数时会将两者位置互换。
实用方法:
递归虽然简洁易懂,但会一直重复的计算,甚至于做无用功,效率方面往往不尽人意。那接下来要就需要找到一种高效的方法了。我们不妨假设我们已经知道了