在 JavaScript 中分解數字


在給定的問題陳述中,我們需要藉助 Javascript 功能對給定的數字進行因式分解。因此,我們將使用迴圈和基本數學來對給定的數字進行因式分解。

理解問題

手頭的問題是藉助 Javascript 對給定的數字進行因式分解。因此,因式分解意味著我們將不得不找到一個數字的所有質因數。質因數是可以整除給定數字而不留餘數的質數。因此,藉助於找到質因數,我們將能夠將一個數字表示為其質因數的乘積。

給定問題的邏輯

為了解決給定的問題,我們將使用一種簡單的方法。當我們迭代從 2 到給定數字的平方根的所有數字時。我們將用這些數字中的每一個來除給定的輸入數字。我們將應用一個條件,即給定數字可以被特定數字整除,以便該數字是質因數。因此,我們將繼續此過程,直到它不再可整除。之後,我們將移動到迭代中的下一個數字並重復此過程,直到我們到達給定數字的平方根。當我們完成迴圈時,如果剩餘數字大於 1,那麼它也是一個質因數。

演算法

步驟 1:由於我們必須對給定數字進行因式分解,因此為了解決此任務,我們需要一個名為 factorize 的函式,並且在這個函式中,我們將傳遞一個名為 num 的引數。我們將對 num 進行因式分解。

步驟 2:宣告函式後,我們將定義一個數組來儲存質因數並初始化此陣列為空。

步驟 3:現在我們有一個數組來儲存結果值,現在我們將迭代從 2 開始到給定數字平方根的數字。

步驟 4:在此步驟中,我們將檢查給定數字是否可以被當前數字整除。如果此條件為真,那麼我們將把當前數字新增到質因數陣列中。

步驟 5:然後我們將用當前數字除以給定數字,並執行此過程,直到它不再可整除。

步驟 6:現在我們將檢查完成迭代後剩餘的數字是否大於 1,然後我們將將其新增到質因數陣列中。

步驟 7:最後,我們將返回質因數陣列作為結果。

示例

// Function to factorize the given number
function factorize(number) {
   let factors = [];
   for (let i = 2; i <= Math.sqrt(number); i++) {
      while (number % i === 0) {
         factors.push(i);
         number /= i;
      }
   }
   if (number > 1) {
      factors.push(number);
   }
   return factors;
}

const number = 36;
const primeFactors = factorize(number);
console.log(`Prime factors of ${number}: ${primeFactors}`);

輸出

Prime factors of 36: 2,2,3,3

複雜度

在 Javascript 中對給定數字進行因式分解的時間複雜度為 O(sqrt(n)),其中 n 是給定數字。因為我們已經迭代了從 2 到給定數字平方根的所有數字。空間複雜度為 O(1),因為我們使用了陣列來儲存質因數。

結論

結果,我們將開發一種演算法,該演算法為對給定的整數進行因式分解提供有效的解決方案。找到所有整除給定數字而不留餘數的質因數被稱為因式分解技術。

更新於: 2023 年 8 月 14 日

551 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.