首页 > 文章列表 > 在 JavaScript 中查找某个范围内具有特定距离的 k 素数

在 JavaScript 中查找某个范围内具有特定距离的 k 素数

392 2023-08-29

K-Prime Numbers

自然数被称为k-质数,如果它恰好有k个质因数,计数时考虑重复。

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

4 = 2 * 2,两个2将被分别计算,计数为2。

同样,8是3-质数,因为8 = 2 * 2 * 2,计数为3。

问题

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

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

示例

以下是代码 −

 Live Demo

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 ] ]