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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP