龙空技术网

帮你精通JavaScript:欧几里得人类史上的首个算法

龙骑士洞察 175

前言:

现时兄弟们对“欧几里得算法的编程”可能比较讲究,看官们都需要剖析一些“欧几里得算法的编程”的相关内容。那么小编同时在网摘上搜集了一些有关“欧几里得算法的编程””的相关资讯,希望姐妹们能喜欢,同学们一起来了解一下吧!

1.欧几里得算法

求最大公因数(greatest common divisor)的辗转相除法,乃是有文字记载以来,人类文明史上的第一个正式提出的算法。

辗转相除法基于如下原理:

两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。

2.最大公因数的概念

此处我们先回顾,最大公因数与最小公倍数的概念,设若两个整数48和180:

48 = 2 * 2 * 2 * 2 * 3180 = 2 * 2 * 3 * 3 * 5

它们之中的共同元素是两个2和一个3,文氏图表示如下:

由此,

最小公倍数 = 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

标签: #欧几里得算法的编程