求最大公约数及最小公倍数

一、最大公约数
1、辗转相除法
辗转相除法又叫欧几里得算法,是欧几里得最先提出来的.辗转相除法的实现,是基于下面的原理(在这里用(a,b)表示a和b的最大公因数):
  (a,b)=(a,ka+b),因为如果p可以整除a,也可以整除b,那么p必然可以整除ak+b,即a*k/p+b/p,所以我们可以用两数中较大的数取余较小的数(余数),一直到出现0为止,不为0 的数就是最大公约数,例如:
  (27,45)=(27,18)=(9,18)=(9,0)=9;
  代码实例:
  求最大公约数及最小公倍数_第1张图片
  2、枚举;
  求最大公约数及最小公倍数_第2张图片
二、最小公倍数
由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。
求最大公约数及最小公倍数_第3张图片

你可能感兴趣的:(算法)