c++使用条件判断求最小公因数
时间: 2024-12-15 08:13:38 浏览: 8
在C++中,我们可以利用条件判断和循环来计算两个整数的最大公约数(Greatest Common Divisor, GCD),然后通过递归或者迭代的方式求得它们的最小公倍数(Least Common Multiple, LCM)。这里是一个简单的示例,展示了如何使用欧几里得算法(Euclidean algorithm)来求最小公因数:
```cpp
#include <iostream>
// 使用辗转相除法求最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 利用GCD求最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b); // 最小公倍数 = 两数乘积 / 最大公约数
}
int main() {
int num1, num2;
std::cout << "请输入两个正整数:";
std::cin >> num1 >> num2;
// 检查输入是否合法
if (num1 <= 0 || num2 <= 0) {
std::cerr << "输入的数字必须是正整数!" << std::endl;
return -1;
}
// 计算并输出最小公因数
int result = gcd(num1, num2);
std::cout << "两个数的最小公因数是:" << result << std::endl;
return 0;
}
```
在这个程序中,首先检查输入的数是否为正整数,然后使用`gcd`函数计算最大公约数,最后通过`lcm`函数得出最小公倍数。
阅读全文