Chúng ta cần viết một hàm nhận một mảng hai số a và b (a >= b) và trả về bội chung nhỏ nhất của tất cả các số trong khoảng [a, b].
Phương pháp
Đầu tiên viết hàm tính bội chung nhỏ nhất (LCM) của hai số, sau đó gọi đệ quy qua các số trong khoảng [a, b] và trả về kết quả.
Ví dụ
const lcm = (a, b) => { let min = Math.min(a, b); while (min >= 2) { if (a % min === 0 && b % min === 0) { return (a * b) / min; } min--; } return (a * b);};const leastCommonMultipleInRange = (arr, len = arr[0], res = 1) => { if (len <= arr[1]) { return leastCommonMultipleInRange(arr, len + 1, lcm(res, len)); } return res;};console.log(leastCommonMultipleInRange([6, 8]));console.log(leastCommonMultipleInRange([6, 18]));console.log(leastCommonMultipleInRange([1, 8]));console.log(leastCommonMultipleInRange([10, 25]));Kết quả
Đầu ra trong console sẽ là:
168 12252240 840 26771144400