输入2个正整数A,B,求A与B的最小公倍数。

这篇博客介绍了如何求解两个正整数A和B的最小公倍数,方法是将两数乘积除以它们的最大公约数。在实现过程中需要注意变量类型选择,建议使用long以避免因数据范围过大导致的错误。

思路:最小公倍数的求解为两数乘积除以最大公约数,先得到最大公约数  注意这里的变量类型用的是long  当然用int可以  但是在测试数据的时候可能通不过,因为测试数据类型不一样

---------------------------------------------------------------------------------------------------------------------------------------------------

using System;

using System.IO;
namespace 是否
{
    class program
    {
        static long GongYueShu(long number1,long number2)
        {
            long a = number1;
            long b = number2;
            long c = 0;
            while(true)
            {
               c =a % b;
                if(c==0)
                {
                    return b;                  
                }
                a = b;
                b = c;
            }
        }
        static void Main(string [] arg)
        {
            string[] s = Console.ReadLine().Split(' ');
            long number1 = Convert.ToInt32(s[0]);
            long number2 = Convert.ToInt32(s[1]);
            long g = GongYueShu(number1,number2);
            Console.WriteLine((number1 * number2) / g);
        }
    }
}
### 用C++基础编程实现两个正整数最小公倍数 在C++中,可以通过计算两个正整数的最大公约数(GCD),然后利用最大公约数来最小公倍数(LCM)。最小公倍数的公式为: $$ \text{LCM}(a, b) = \frac{a \times b}{\text{GCD}(a, b)} $$ #### 示例代码 以下是一个使用**辗转相除法**(欧几里得算法最大公约数,并计算最小公倍数的完整C++代码: ```cpp #include <iostream> using namespace std; // 辗转相除法最大公约数 int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; } int main() { int a, b; cout << "输入两个正整数,中间用空格隔开:"; cin >> a >> b; // 计算最大公约数 int greatestCommonDivisor = gcd(a, b); // 计算最小公倍数 int leastCommonMultiple = a * b / greatestCommonDivisor; // 输出结果 cout << a << " 和 " << b << " 的最小公倍数为:" << leastCommonMultiple << endl; return 0; } ``` #### 程序说明 1. **最大公约数的计算**:使用了**辗转相除法**,即通过反复取余数,直到余数为0,此时的除数即为最大公约数[^3]。 2. **最小公倍数的计算**:利用公式 $ \text{LCM}(a, b) = \frac{a \times b}{\text{GCD}(a, b)} $,通过最大公约数快速最小公倍数[^1]。 3. **输入输出**:用户输入两个正整数,程序输出它们的最小公倍数。 #### 注意事项 - 代码中使用了函数 `gcd` 来封装最大公约数的计算逻辑,使程序结构更清晰。 - 通过 `a * b / greatestCommonDivisor` 计算最小公倍数,避免了直接遍历法可能导致的性能问题[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值