Viết hàm nhận mảng số bất kỳ độ dài, trả về LCM.
Cách làm: 1) Hàm GCD (ước chung lớn nhất) 2 số. 2) Hàm LCM 2 số = a*b/GCD. 3) Duyệt mảng tính LCM tích lũy.
Ví dụ
Mã minh họa:
const calculateLCM = (...arr) => {
const gcd2 = (a, b) => {
if(!b) return b===0 ? a : NaN;
return gcd2(b, a%b);
};
const lcm2 = (a, b) => 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));Kết quả
Đầu ra:
2520