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

คำนวณ LCM (Least Common Multiple) ของหลายตัวเลข - JavaScript

หา LCM ของอาร์เรย์ตัวเลข ใช้ GCD (Greatest Common Divisor) ช่วยคำนวณ

สูตร: LCM(a, b) = a * b / GCD(a, b)

ตัวอย่างโค้ด

const calculateLCM = (...arr) => {
  const gcd2 = (a, b) => {
    if (!b) return b === 0 ? a : NaN;
    return gcd2(b, a % b);
  };
  const lcm2 = (a, b) => {
    return a * b / gcd2(a, b);
  };
  let n = 1;
  for (let i = 0; i < arr.length; ++i) {
    n = lcm2(arr[i], n);
  }
  return n;
};
console.log(calculateLCM(12, 18, 7, 15, 20, 24, 28));

ผลลัพธ์

2520

คำอธิบาย: gcd2 ใช้ Euclidean algorithm (recursive) lcm2 ใช้สูตร a*b/gcd วนลูปคำนวณ LCM สะสม n = lcm2(arr[i], n) เริ่มจาก 1

การใช้งาน: ใช้ในการหาตัวคูณร่วมน้อย สำหรับปัญหาการจัดตารางเวลา, gears, fractions