JavaScript 中可以被前 n 个数字整除的最小数字

我们需要编写一个 JavaScript 函数,它接受一个数字,比如 n。该函数应该找到并返回可以被从 1 到 n 的所有数字完全整除的最小可能数字。

示例

以下是代码 -

const smallestDivisible = (num) => {
   let i, n = 1;
   const largestPower = (n, num) => {
      let p, e = 2, largest = n;
      while ((p = Math.pow(n, e)) <= num) {
         largest = p;
         e += 1;
      }
      return largest;
   }
   const isPrime = n => {
      let i, num = Math.ceil(Math.sqrt(n));
      for (i = 3; i <= num; i += 2) {
         if (n % i === 0) {
            return false;
         }
      }
      return true;
   }
   for (i = 3; i <= num; i += 2) {
      if (isPrime(i)) {
         n *= largestPower(i, num);
      }
   }
   return n * largestPower(2, num);
}
console.log(smallestDivisible(20));
输出结果

以下是控制台上的输出 -

232792560