在 JavaScript 中查找范围内特定距离的 k-素数

K-质数

如果一个自然数恰好有 k 个素因子,则称为 k-素数,并用多重数计算。

这意味着即使 4 的唯一质因数是 2,它也会是一个 2 质数,因为 -

4 = 2 * 2 并且两个 2 将分别计数,计数为 2。

类似地,8 是 3 质数,因为 8 = 2 * 2 * 2 将计数变为 3。

问题

我们需要编写一个 JavaScript 函数,它接受一个数字 k、一个距离和一个范围。

我们的函数应该返回一个包含 k 素数的数组数组,该范围内的距离恰好等于指定的距离。

示例

以下是代码 -

const k = 2;

const step = 2;

const range = [0, 50];

const kPrimeSteps = (k = 1, step = 1, [start, end]) => {

   const res = [];

   let i = start;

   const findLen = (n = 1) => {

      let count = 0, i = 2;

      while (i * i <= n) {

         while (n % i === 0) {

            count++;

            n /= i;

         }

         i++;

      }

      if (n > 1) count++;

      return count;

   }

   while (i <= end - step) {

      if ((findLen(i) == k && findLen(i+step) == k))

      res.push([i, i+step]);

      i++;

   }

   return res;

};

console.log(kPrimeSteps(k, step, range));

输出结果

以下是控制台输出 -

[ [ 4, 6 ], [ 33, 35 ] ]

以上是 在 JavaScript 中查找范围内特定距离的 k-素数 的全部内容, 来源链接: utcz.com/z/349140.html

回到顶部