在 JavaScript 中计算多个数字的最小公倍数


我们需要编写一个 JavaScript 函数,该函数接受任意长度的数字数组并返回它们的最小公倍数。

我们将分多个部分解决此问题 −

部分 1 − 我们将创建一个帮助函数来计算两个数字的最大公约数 (GCD)

部分 2 − 然后使用部分 1 中的帮助函数,我们将创建另一个帮助函数来计算两个数字的最小公倍数 (LCM)。

部分 3 − 最后,使用部分 2 中的帮助函数,我们将创建一个函数,该函数遍历数组并计算数组最小公倍数。

示例

代码如下 −

const calculateLCM = (...arr) => {
   const gcd2 = (a, b) => {
      // Greatest common divisor of 2 integers
      if(!b) return b===0 ? a : NaN;
         return gcd2(b, a%b);
   };
   const lcm2 = (a, b) => {
      // Least common multiple of 2 integers
      return a * b / gcd2(a, b);
   }
   // Least common multiple of a list of integers
   let n = 1;
   for(let i = 0; i < arr.length; ++i){
      n = lcm2(arr[i], n);
   }
   return n;
};
console.log(calculateLCM(12, 18, 7, 15, 20, 24, 28));

输出

控制台中的输出如下 −

2520

更新于: 20-Nov-2020

903 次浏览

开启您的 职业生涯

完成课程,获得认证

开始学习
广告