Computer >> Máy Tính >  >> Lập trình >> Javascript

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

Chúng tôi bắt buộc phải viết một hàm chấp nhận hai số và trả về bội chung nhỏ nhất của chúng.

Đa ít chung nhất (LCM)

Bội số chung nhỏ nhất 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 cho cả 6 và 8.

Phương pháp tính LCM

Một trong nhiều cách tính LCM của hai số a và b là chia tích của a và b cho số nguyên lớn nhất (còn được gọi là ước chung lớn nhất hoặc GCD) chia botha và b.

Trong trường hợp 6 và 8, tích của chúng là 48 và số nguyên lớn nhất chia cả hai là 2 nên LCM của chúng là -

(6*8)/2 = 24

Làm rõ những điều này, bây giờ chúng ta hãy chuyển sang phần viết mã -

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));

Hiểu mã

Vì số nguyên lớn nhất chia chính xác cho cả hai số vẫn sẽ nhỏ hơn hoặc bằng số nhỏ hơn của hai số, chúng tôi đang tính LCM cho, chúng tôi chạy một vòng lặp giảm dần từ số nhỏ hơn xuống còn 2.

Nếu trong các lần lặp lại của chúng tôi, chúng tôi tìm thấy bất kỳ số nào chia cả hai số, chúng tôi có thể đảm bảo rằng đó là số lớn nhất chia cả hai vì chúng tôi đang ở trong một vòng lặp giảm dần, vì vậy chúng tôi quay lại ngay tại đó với LCM.

Nếu chúng tôi lặp lại toàn bộ, điều đó có nghĩa là chúng tôi không tìm thấy bất kỳ số nào như vậy và 1 là số duy nhất chia cả hai (nói cách khác là các số là đồng nguyên tố), vì vậy chúng tôi chỉ cần trả lại tích của chúng.

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

24
144
0
308
306