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

Chương trình C++ tìm UCLN và BCNN của n số


Đâ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