C Chương trình tìm LCM của hai số

Trong ví dụ này, bạn sẽ học cách tính LCM (Bội số chung thấp nhất) của hai số do người dùng nhập.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình C sau:

  • Toán tử lập trình C
  • Câu lệnh C if… else
  • C while và do… while Loop

LCM của hai số nguyên n1 và n2 là số nguyên dương nhỏ nhất chia hết cho n1 và n2 (không có dư). Ví dụ, LCM của 72 và 120 là 360.

LCM sử dụng while và if

 #include int main() ( int n1, n2, max; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); // maximum number between n1 and n2 is stored in min max = (n1> n2) ? n1 : n2; while (1) ( if (max % n1 == 0 && max % n2 == 0) ( printf("The LCM of %d and %d is %d.", n1, n2, max); break; ) ++max; ) return 0; ) 

Đầu ra

 Nhập hai số nguyên dương: 72 120 LCM của 72 và 120 là 360. 

Trong chương trình này, các số nguyên do người dùng nhập được lưu trữ trong biến n1 và n2 tương ứng.

Số lớn nhất trong số n1 và n2 được lưu trữ trong max. LCM của hai số không được nhỏ hơn tối đa.

Biểu thức kiểm tra của whilevòng lặp luôn đúng.

Trong mỗi lần lặp, kiểm tra xem max có chia hết cho n1 và n2 hay không.

 if (min% n1 == 0 && max% n2 == 0) (…) 

Nếu điều kiện kiểm tra này không đúng, giá trị max được tăng lên 1và quá trình lặp tiếp tục cho đến khi biểu thức kiểm tra của ifcâu lệnh là đúng.

LCM của hai số cũng có thể được tìm thấy bằng công thức:

 LCM = (num1 * num2) / GCD 

Tìm hiểu cách tìm GCD của hai số trong lập trình C.

Tính toán LCM bằng GCD

 #include int main() ( int n1, n2, i, gcd, lcm; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); for (i = 1; i <= n1 && i <= n2; ++i) ( // check if i is a factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i; ) lcm = (n1 * n2) / gcd; printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm); return 0; ) 

Đầu ra

 Nhập vào hai số nguyên dương: 72 120 CTPT của hai số 72 và 120 là 360. 

thú vị bài viết...