在 JavaScript 中查詢數字的最大質因數


在本題中,我們需要利用 JavaScript 功能找到一個數字的最大質因數。因此,我們將使用 JavaScript 的基本功能來解決這個問題。

理解問題

問題是找到給定輸入數字的最大質因數。數字的質因數是可以整除給定數字而不留下餘數的質數。我們的任務是找到最大質因數,即值最大的質因數。例如,假設我們有一個數字 84。那麼這個數字的質因數是 2、2、3 和 7。在這些數字中,最大質因數是 7。

給定問題的邏輯

為了解決這個問題,我們將使用一種稱為質因數分解的方法。基本上,我們將從用最小的質數 2 除以給定數字開始,並繼續此過程,直到它不能被 2 除。之後,我們將轉到下一個質數,並繼續此過程,直到到達給定數字等於 1 的點。因此,最大質因數可以在此過程中找到。透過此過程,我們可以有效地找出任何給定數字的質因數。

演算法

步驟 1:因為我們必須找到給定輸入數字的最大質因數,所以我們需要定義一個函式來完成此任務。因此,建立一個函式並將其命名為 primeFactor,並在該函式中傳入輸入數字。

步驟 2:定義函式後,我們需要定義兩個變數,稱為 largest 和 current。largest 變數將儲存最大質因數,而 current 將儲存質數的當前值。

步驟 3:現在使用 while 迴圈迭代質數。只要當前數字小於或等於該數字,此迴圈就會繼續執行。

步驟 4:在上面的迴圈中,我們將檢查查詢最大質因數的主要條件。因此,檢查數字是否可被當前數字整除且餘數為零。如果條件為真,則使用當前值更新 largest 的值,並將數字除以當前值。

步驟 5:如果我們沒有滿足上述條件,我們將只將當前值加 1。

步驟 6:在所有條件結束並退出 while 迴圈後,我們將得到我們的最大質因數。

示例

//Function for finding the largest prime factor
function primeFactor(number) {
  let largest = 1;
  let current = 2;

  while (current <= number) {
   if (number % current === 0) {
     largest = current;
     number /= current;
   } else {
     current++;
   }
  }

  return largest;
}
const number = 84;
const largestPrime = primeFactor(number);
console.log("The largest prime factor of", number, "is", largestPrime);

輸出

The largest prime factor of 84 is 7

複雜度

查詢數字最大質因數的時間複雜度為 O(sqrt(n)),其中 n 是最大質數。這種複雜度的原因在於該函式取決於給定數字的大小,並且我們已經迭代了直到 n 的平方根的所有質數。

結論

我們建立的函式允許我們使用 Javascript 查詢給定數字的最大質因數。我們使用了質因數分解技術來完成此任務。

更新於:2023年8月14日

822 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告