c++求两个数最小公倍数,使用while
时间: 2024-03-01 09:52:11 浏览: 22
可以使用以下代码实现:
```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++求3个数最小公倍数代码
#include <stdio.h>
// 定义函数求两个数的最大公约数
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
// 定义函数求三个数的最小公倍数
int lcm(int a, int b, int c) {
int temp = gcd(gcd(a, b), c); // 先求出三个数的最大公约数
return a * b * c / temp; // 最小公倍数等于三个数的乘积除以最大公约数
}
int main() {
int a, b, c;
printf("请输入三个正整数:");
scanf("%d %d %d", &a, &b, &c);
printf("它们的最小公倍数为:%d\n", lcm(a, b, c));
return 0;
}
用C++完成求N个数的最小公倍数
以下是使用C++编写的求N个数最小公倍数的示例代码:
```cpp
#include <iostream>
using namespace std;
// 计算两个数的最大公约数
int gcd(int a, int b) {
while (b) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 计算两个数的最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
// 计算N个数的最小公倍数
int multiple_lcm(int numbers[], int n) {
int result = numbers[0];
for (int i = 1; i < n; i++) {
result = lcm(result, numbers[i]);
}
return result;
}
int main() {
int n;
cout << "请输入数字个数N:";
cin >> n;
int numbers[n];
cout << "请输入" << n << "个数字:";
for (int i = 0; i < n; i++) {
cin >> numbers[i];
}
int result = multiple_lcm(numbers, n);
cout << "这" << n << "个数的最小公倍数为:" << result << endl;
return 0;
}
```
使用以上代码,你可以首先输入数字的个数N,然后输入N个数字,程序将会计算这N个数的最小公倍数并输出结果。
希望对你有帮助!