在 JavaScript 中查詢最小公倍數


在本題中,我們需要利用 JavaScript 功能找到給定數字的最小公倍數。我們將使用迴圈來迭代並檢查給定數字的倍數。

理解問題

當前問題是在 JavaScript 中找到給定數字的最小公倍數。一個數的倍數是可以被該數整除的數。為了解決這個問題,我們將使用一個迴圈並迭代這些數字,直到找到最小公倍數,該倍數可以被從 1 到給定數字的所有數字整除。例如,如果我們需要找到 4 的倍數,則結果數字將是 12,因為數字 12 可以被 1、2、3 和 4 整除。

給定問題的邏輯

在函式中,我們將使用一個數字作為引數,並用數字的值初始化一個名為 multiple 的變數。然後,我們將使用 while 迴圈迭代這些數字,直到找到一個可以被從 1 到給定數字的所有數字整除的倍數。如果該倍數不滿足任何數字的可整除性條件,我們將透過遞增它來移動到下一個倍數。這個過程將持續進行,直到我們找到一個滿足所有數字的可整除性條件的倍數。

演算法

步驟 1:由於我們需要找出給定數字的最小公倍數,因此我們將建立一個函式,並在該函式中傳入一個數字作為輸入引數。此函式將找出從 1 到給定數字的倍數。

步驟 2:我們將使用一個名為 multiple 的變數,最初我們將儲存給定的輸入數字。基本上,我們將從給定的數字本身開始查詢倍數。

步驟 3:然後我們將使用一個 while 迴圈並傳入條件 true,一個布林值。在迴圈內,我們將設定另一個變數來檢查倍數是真還是假,並將其命名為 isMultiple,並將它的初始值設定為 true。

步驟 4:現在,我們將使用 for 迴圈檢查當前倍數是否可以被從 1 到給定數字的所有數字整除。因此,在這裡我們將檢查可整除性。如果當前倍數不能被從 1 到給定數字的任何數字整除,則 isMultiple 變數將被設定為 false,並且迴圈在此處中斷。

步驟 5:如果在 for 迴圈後 isMultiple 保持為 true,則表示它是給定數字的倍數,並將返回該倍數。

示例

// Function to find the smallest multiple of the given number
function findMultiple(number) {
   // Start with the given number
   let multiple = number;

   while (true) {
      let isMultiple = true;

      // Check if the current multiple is divisible by all numbers from 1 to the given number
      for (let i = 1; i <= number; i++) {
         if (multiple % i !== 0) {
            isMultiple = false;
            break;
         }
      }

      if (isMultiple) {
         // Return the smallest multiple
         return multiple;
      }
      // Increment the multiple if it's not divisible
      multiple++;
   }
}

console.log(findMultiple(4));
console.log(findMultiple(10));
console.log(findMultiple(11));
console.log(findMultiple(15));

輸出

12
2520
27720
360360

複雜度

程式碼的時間複雜度取決於最小公倍數的值和給定的數字。在最壞的情況下,程式碼可能需要迭代大量的潛在倍數才能找到滿足可整除性條件的最小公倍數。因此,時間複雜度為 O(m * n),其中 m 是最小公倍數的值,n 是給定的數字。程式碼的空間複雜度為 O(1),因為它使用少量變數來儲存值。

結論

在程式碼中,我們使用了基本的 JavaScript 功能來獲取給定數字所需的最小公倍數。就時間複雜度而言,此函式可能不是最有效的解決方案。對於較大的值,時間複雜度可能很高。

更新於:2023年8月14日

瀏覽量:365

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.