หา 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