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