输入三个正整数,输出这三个数的最大公约数c++
时间: 2024-03-17 14:47:56 浏览: 92
好的,您可以使用以下代码来实现:
```c++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b, c;
cin >> a >> b >> c;
int ans = gcd(gcd(a, b), c);
cout << ans << endl;
return 0;
}
```
这里使用递归的方式实现了求最大公约数的功能。具体来说,我们使用辗转相除法来求两个数的最大公约数,然后再依次求三个数的最大公约数。
相关问题
输入三个正整数,输出这三个数的最大公约数。 用c++
可以使用欧几里得算法(辗转相除法)求解。
C++代码如下:
```cpp
#include <iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b, c;
cout << "请输入三个正整数:";
cin >> a >> b >> c;
int res = gcd(gcd(a, b), c);
cout << "它们的最大公约数是:" << res << endl;
return 0;
}
```
输入三个正整数,程序会输出它们的最大公约数。
输入三个正整数,输出这三个数的最小公倍数。 用c++
可以通过求出它们的最大公约数来计算最小公倍数。
因为有这样一个结论:两个数的乘积等于它们的最大公约数和最小公倍数的积。
所以,三个数的最小公倍数等于它们的乘积除以它们的最大公约数。
C++代码如下:
```cpp
#include <iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b, c;
cout << "请输入三个正整数:";
cin >> a >> b >> c;
int res = a * b * c / gcd(gcd(a, b), c);
cout << "它们的最小公倍数是:" << res << endl;
return 0;
}
```
输入三个正整数,程序会输出它们的最小公倍数。
阅读全文