📜  最大公因数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:10:34.779000             🧑  作者: Mango

最大公因数 - Javascript

在数学中,最大公因数(Greatest Common Divisor, GCD)是两个或多个整数的共同因数中最大的一个。在 Javascript 中,可以通过欧几里得算法(辗转相除法)来求取最大公因数。

欧几里得算法

欧几里得算法又称辗转相除法,是求两个自然数的最大公约数的一种方法。它的具体做法是:用较大的数去除以较小的数,再用出现的余数去除除数,如此反复,直到余数为零为止,则最后的除数就是这两个数的最大公约数。其数学表达式为:

gcd(a, b) = gcd(b, a mod b)    (a > 0, b > 0)

其中 a mod b 表示 a 除以 b 的余数。

利用递归和循环等方式,可以在 Javascript 中实现这个算法。代码如下:

/**
 * 欧几里得算法(辗转相除法)求最大公因数
 * @param {number} a 整数1
 * @param {number} b 整数2
 * @returns {number} 最大公因数
 */
function gcd(a, b) {
  if (b === 0) {
    return a;
  } else {
    return gcd(b, a % b);
  }
}

上述代码定义了一个 gcd 函数,输入两个整数 ab,返回它们的最大公因数。该函数使用递归来实现欧几里得算法,并在基线条件中返回最终的结果。

使用该函数,我们可以计算任意两个整数的最大公因数,例如:

console.log(gcd(15, 10)); // 输出 5
console.log(gcd(21, 14)); // 输出 7
console.log(gcd(20, 15)); // 输出 5

同时,上述代码同样适用于求多个整数的最大公因数。我们可以依次计算出所有整数两两之间的最大公因数,最终得到它们的最大公因数。

总结

欧几里得算法是求解最大公因数的一种简单有效的方法,可以在 Javascript 中使用递归和循环等方式来实现。掌握该算法,对于计算最大公因数或其他数学问题都将非常有用。