C++ 程序计算最小公倍数 (LCM)


2023 年 1 月 18 日, Learn eTutorial
1811

什么是最小公倍数 (LCM)?

这个 C++ 程序用于查找最小公倍数 (LCM),LCM 代表最小公倍数。最小公倍数可以定义为两个数的最小公倍数

示例:让我们找出 45 的最小公倍数。

  • 4 的倍数是:4、8、12、16、20、24、28、32、36、40、...
  • 5 的倍数是:5、10、15、20、25、30、35、40、...
  • 因此,4 和 5 的最小公倍数是 20。它是同时是 4 和 5 的倍数的最小数字
calculate the LCM

如何在 C++ 中实现列举法来计算最小公倍数?

calculate the LCM

要求用户输入两个数字。将值读入变量 num1num2。找出 num1num2 之间的最大值,并将最大值存储在变量 max 中。

这里我们使用 C++ 中的三元或条件运算符 ( ?: )。 
变量 = 表达式1 ? 表达式2 : 表达式3

这里,表达式1是要评估的条件。如果条件 (表达式1) 为真,则表达式2将被执行并返回结果。否则,如果条件 (表达式1) 为假,则表达式3将被执行并返回结果。
因此,比较可以这样进行  max = ( num1 > num2 ) ? num1 : num2

如果 num1 大于 num2,则 max = num1;否则 max = num2;现在变量 max 包含这两个数字中的较大者。

max 除以这两个变量。如果 max 可以被 num1num2 整除,则 LCM = max;否则将 max 的值增加 1。重复除法过程,直到我们得到一个可以被 num1num2 这两个整数整除的数字。打印结果。这可以通过使用 if-else 语句和 do------while 循环来完成。

 

算法

步骤 1:  调用头文件 iostream.

步骤 2: 使用 namespace std

步骤 3: 打开整数类型的主函数; int main()。

步骤 4: 声明整数变量 num1num2max

步骤 5:打印消息以输入两个数字。

步骤 6: 将数字读入变量 num1num2。

步骤 7: 比较 num1 num2。 将较大值加载到变量 max

步骤 8: 检查 max 是否可以被 num1num2 整除。然后打印 LCM = max

步骤 9:否则将 max 增加 1,然后转到步骤 8。

步骤 10:退出;

C++ 源代码

                                          #include <iostream>
using namespace std;

int main()
{
    int num1, num2, max;

    cout << "Enter two numbers: ";
    cin >> num1 >> num2;
    
    // maximum value between num1 and num2 is stored in max
    max = (num1 > num2) ? num1 : num2;

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

输出

Enter two numbers: 4
6
LCM = 12