อัลกอริทึมยุคลิดเป็นวิธีหาตัวหารร่วมมาก (GCD) ของสองจำนวน หลักการคือ GCD ของสองจำนวนไม่เปลี่ยนถ้าแทนจำนวนที่มากกว่าด้วยผลต่างระหว่างมันกับจำนวนที่น้อยกว่า ทำซ้ำจนทั้งสองเท่ากัน
ตัวอย่าง: GCD(252, 105) = 21
ตัวอย่างโค้ด
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