Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

อัลกอริทึมยุคลิด (Euclidean Algorithm) สำหรับหาตัวหารร่วมมาก (GCD) ใน JavaScript

อัลกอริทึมยุคลิดเป็นวิธีหาตัวหารร่วมมาก (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