Euclidean Algorithm for calculating GCD in JavaScript


在數學中,歐幾里得演算法是一種計算兩個數字的最大公約數(GCD)的方法,最大公約數(GCD)是能同時整除這兩個數字而不留下餘數的最大數字。

歐幾里得演算法基於一個原則,即兩個數字的最大公約數不變,不管大的數字是否用它與小數字相差的值代替。

例如,21 是 252 和 105 的最大公約數(因為 252 = 21 × 12 且 105 = 21 × 5),同樣的數字 21 也是 105 和 252 - 105 = 147 的最大公約數。

由於這個替換減少了兩個數字的較大者,重複這個過程會得到一系列越來越小的數字對,直到這兩個數字相等。當這兩個數字相等時,它們就是這兩個原數字的最大公約數。

透過逆向這些步驟,可以將最大公約數表示為兩個原數字各乘以一個正數或負數的總和,例如,21 = 5 × 105 + (-2) × 252。

我們要求編寫一個 JavaScript 函式,該函式接收兩個數字並利用歐幾里得演算法計算它們的最大公約數(GCD)。

示例

以下為程式碼 -

const num1 = 252;
const num2 = 105;
const findGCD = (num1, num2) => {
   let a = Math.abs(num1);
   let b = Math.abs(num2);
   while (a && b && a !== b) {
      if(a > b){
         [a, b] = [a - b, b];
      }else{
         [a, b] = [a, b - a];
      };
   };
   return a || b;
};
console.log(findGCD(num1, num2));

輸出

以下為控制檯輸出 -

21

更新於: 11-Dec-2020

1K+ 瀏覽

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.