在 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 ] ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP