Tìm ước chung lớn nhất, Bội chung nhỏ nhất của hai số a, b

9
Lập trình C++

Bài toán. Tìm ước chung lớn nhất, Bội chung nhỏ nhất của hai số a, b. Yêu cầu: Nhập vào hai số nguyên dương a, b, kết quả xuất ra theo thứ tự là ƯCLN và BCNN của hai số a và b. Ví dụ: 

UCBC.INP

UCBC.OUT

24 30

6 120

Code tham khảo:

#include <iostream>
using namespace std;
int uc(int a, int b) {
    if(a == 0 || b == 0) { return a;}
    while (a!=b){
        if (a > b) {a -= b;}
        else {b -= a;}
    }
    return a;
}
int main() {
    freopen("UCBC.INP","r",stdin);
    freopen("UCBC.OUT","w",stdout);
    int a, b;
    cin >> a >> b;
    cout << uc(a, b) << " " << a*b / uc(a, b);
    return 0;
}