查找最小公倍数的 C++ 程序

在本文中,我们使用 C++ 程序实现查找两个数字的最小公倍数。

本文展示了使用循环和决策语句计算两个整数的最低公倍数(LCM)的不同方法的示例。

要理解此示例,您应该具备以下 C++ 编程 主题的知识:

两个整数 a 和 b 的最小公倍数是能被两者 a 和 b 整除的最小正整数。

示例 1:查找最小公倍数

#include <iostream>
using namespace std;

int main()
{
    int n1, n2, max;

    cout << "Enter two numbers: ";
    cin >> n1 >> n2;

    // maximum value between n1 and n2 is stored in max
    max = (n1 > n2) ? n1 : n2;

    do
    {
        if (max % n1 == 0 && max % n2 == 0)
        {
            cout << "LCM = " << max;
            break;
        }
        else
            ++max;
    } while (true);

    return 0;
}

输出

Enter two numbers: 12
18
LCM = 36

在上面的程序中,要求用户对两个整数进行整数化 n1n2 这两个数字中最大的一个存储在 max 变量中。

检查 max 是否可被整除 n1n2,如果它可以被两个数字整除, max (其中包含 LCM)被打印并终止循环。

如果不是,则值为 max 增加 1 并继续相同的过程,直到 max 可以被 n1n2 两者整除.

示例 2:使用最大公约数计算最小公倍数

两个数字的最小公倍数也可以由他们的最大公约数计算得出:

最小公倍数 = (n1 * n2) / 最大公约数

访问此页面以了解:如何在 C++ 中计算 HCF?

#include <iostream>
using namespace std;

int main()
{
    int n1, n2, hcf, temp, lcm;

    cout << "Enter two numbers: ";
    cin >> n1 >> n2;

    hcf = n1;
    temp = n2;

    while(hcf != temp)
    {
        if(hcf > temp)
            hcf -= temp;
        else
            temp -= hcf;
    }

    lcm = (n1 * n2) / hcf;

    cout << "LCM = " << lcm;
    return 0;
}