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

更新於: 2021 年 4 月 20 日

312 次檢視

開啟您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.