输入两个正整数求最大公约数C++
时间: 2023-07-11 21:39:17 浏览: 54
以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int num1, num2;
cout << "请输入两个正整数:" << endl;
cin >> num1 >> num2;
// 求最大公约数
int gcd = 1;
for (int i = 1; i <= num1 && i <= num2; ++i) {
if (num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}
// 输出结果
cout << num1 << "和" << num2 << "的最大公约数为:" << gcd << endl;
return 0;
}
```
该程序通过暴力枚举的方式找到两个数的最大公约数,时间复杂度为 $O(\min\{num1, num2\})$。如果需要求多组数据的最大公约数,可以将代码封装为一个函数,然后在主函数中循环调用即可。
相关问题
c++输入两个正整数求最大公约数和最小公倍数
以下是Python代码实现:
```python
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
# 求最大公约数
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x % y)
# 求最小公倍数
def lcm(x, y):
return x * y // gcd(x, y)
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
示例输出:
```
请输入第一个正整数:12
请输入第二个正整数:18
最大公约数为: 6
最小公倍数为: 36
```
c++语言输入两个正整数求最大公约数和最小公倍数
```c
#include <stdio.h>
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int a, b;
printf("请输入两个正整数:\n");
scanf("%d%d", &a, &b);
printf("它们的最大公约数为:%d\n", gcd(a, b));
printf("它们的最小公倍数为:%d\n", lcm(a, b));
return 0;
}
```