Đây là mã để tìm UCLN (Ước chung lớn nhất) và BCNN (Bội chung nhỏ nhất) của n số. UCLN của hai hoặc nhiều số nguyên (không phải toàn bộ bằng 0) là số nguyên dương lớn nhất chia hết cho mỗi số trong số đó. UCLN còn được gọi là Ước chung lớn nhất.
BCNN của hai số là số nhỏ nhất (khác 0) là bội số của cả hai số.
Thuật toán
Bắt đầu
Nhập hai số
Gọi hàm gcd() để tìm UCLN của n số
Gọi hàm lcm() để tìm BCNN của n số
gcd(số1, số2)
Khai báo r, a, b
Gán r = 0
a = (số1 > số2) ? số1 : số2
b = (số1 < số2) ? số1 : số2
r = b
While (a mod b != 0)
r = a mod b
a = b
b = r
Trả về r
lcm(số1, số2)
Khai báo a
a = (số1 > số2) ? số1 : số2
While(true)
If (a mod số1 == 0 và a mod số2 == 0)
Trả về a
Tăng a
Kết thúc
Mã ví dụ
#include <iostream>
using namespace std;
int gcd(int m, int n) {
int r = 0, a, b;
a = (m > n) ? m : n;
b = (m < n) ? m : n;
r = b;
while (a % b != 0) {
r = a % b;
a = b;
b = r;
}
return r;
}
int lcm(int m, int n) {
int a;
a = (m > n) ? m : n;
while (true) {
if (a % m == 0 && a % n == 0)
return a;
++a;
}
}
int main(int argc, char **argv) {
cout << "Nhập hai số: ";
int m, n;
cin >> m >> n;
cout << "UCLN của hai số là: " << gcd(m, n) << endl;
cout << "BCNN của hai số là: " << lcm(m, n) << endl;
return 0;
}
Kết quả đầu ra
Nhập hai số: 7 6 UCLN của hai số là: 1 BCNN của hai số là: 42