Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Viết chương trình tính bội chung nhỏ nhất của hai số JavaScript

Chúng ta cần viết một hàm nhận hai số và trả về bội chung nhỏ nhất (LCM) của chúng.

Bội chung nhỏ nhất (LCM)

LCM của hai số a và b là số nguyên dương nhỏ nhất chia hết cho cả a và b.

Ví dụ - LCM của 6 và 8 là 24 vì 24 là số nguyên dương nhỏ nhất chia hết cho cả 6 và 8.

Phương pháp tính LCM

Một cách là chia tích của a và b cho ước chung lớn nhất (GCD) của chúng.

Với 6 và 8, tích là 48 và ước chung lớn nhất là 2, nên LCM = (6*8)/2 = 24.

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);};console.log(lcm(6, 8));console.log(lcm(16, 18));console.log(lcm(0, 8));console.log(lcm(11, 28));console.log(lcm(18, 34));

Giải thích mã

Vì ước chung lớn nhất không vượt quá số nhỏ hơn trong hai số, ta chạy vòng lặp giảm dần từ số nhỏ hơn xuống 2. Nếu tìm thấy số chia hết cả hai, đó chắc chắn là ước chung lớn nhất (do lặp giảm dần), trả về LCM ngay. Nếu lặp hết không tìm thấy, nghĩa là hai số nguyên tố cùng nhau, trả về tích của chúng.

Kết quả

Đầu ra trong console sẽ là:

24 144 0 308 306