使用C++求两个整数的最小公倍数
时间: 2023-09-22 15:06:48 浏览: 137
求两个整数的最大公约数(Greatest Common Divisor, GCD)可以使用辗转相除法(Euclidean algorithm)。
最小公倍数(Least Common Multiple, LCM)可以使用 GCD * (a / GCD) * b 来计算。
代码示例:
```
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
```
使用:
```
int a = 10, b = 20;
cout << "GCD: " << gcd(a, b) << endl;
cout << "LCM: " << lcm(a, b) << endl;
```
输出结果:
```
GCD: 10
LCM: 20
```
相关问题
c++求两个数最小公倍数,使用while
可以使用以下代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int a, b, max, min, lcm;
cout << "请输入两个正整数:" << endl;
cin >> a >> b;
max = (a > b) ? a : b;
min = (a < b) ? a : b;
int i = 1;
while (true) {
lcm = max * i;
if (lcm % min == 0) {
cout << a << "和" << b << "的最小公倍数是:" << lcm << endl;
break;
}
i++;
}
return 0;
}
```
首先输入两个正整数,然后通过三目运算符找出它们的最大值和最小值。之后用一个 `while` 循环来找到它们的最小公倍数,循环从 1 开始,每次将最大值乘以循环变量 i 来得到可能的最小公倍数,如果当前得到的数能够被最小值整除,则说明当前得到的数就是最小公倍数,输出即可,使用 `break` 语句来退出循环。
使用完整C++代码求两个整数的最小公倍数
以下是使用完整的C++代码来计算两个整数的最小公倍数:
```c++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int lcm(int a, int b) {
return (a / gcd(a, b)) * b;
}
int main() {
int num1, num2;
cout << "请输入两个整数: ";
cin >> num1 >> num2;
int result = lcm(num1, num2);
cout << "最小公倍数: " << result << endl;
return 0;
}
```
在上面的代码中,我们定义了两个函数 `gcd` 和 `lcm` 来计算最大公约数和最小公倍数。`gcd` 函数使用辗转相除法来计算最大公约数,`lcm` 函数则使用公式 `(a / gcd(a, b)) * b` 来计算最小公倍数。
在 `main` 函数中,我们首先获取用户输入的两个整数,然后调用 `lcm` 函数计算最小公倍数,并将结果输出到控制台上。
你可以根据需要修改代码中的变量名和输入输出的方式。
阅读全文