![ac536234f270a3ac7631b332c8144231.png](https://i-blog.csdnimg.cn/blog_migrate/8516c0f489046c31b724eb5dc7581038.jpeg)
1.欧几里得算法
求最大公因数(greatest common divisor)的辗转相除法,乃是有文字记载以来,人类文明史上的第一个正式提出的算法。
辗转相除法基于如下原理:
两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。
2.最大公因数的概念
此处我们先回顾,最大公因数与最小公倍数的概念,设若两个整数48和180:
48 = 2 * 2 * 2 * 2 * 3180 = 2 * 2 * 3 * 3 * 5
它们之中的共同元素是两个2和一个3,文氏图表示如下:
![134a3ecbda695e2439cdef5ad10077a6.png](https://i-blog.csdnimg.cn/blog_migrate/9573365f90279dc159f386190efe3caa.jpeg)
由此,
最小公倍数 = 2 * 2 * (2 * 2 * 3) * 3 * 5 = 720最大公因数 = 2 * 2 * 3 = 12
3.算法实现:
最大公因数的计算方法为: GCD(a, b) = GCD(b, r)
GCD(206,40)=GCD(40,6) GCD(6,4) GCD(4,2) GCD(2,0)
js代码:
function gcd(a, b) { return b === 0 ? a : gcd(b, a % b);}console.log(gcd(180, 48));> 12