用C++写,输入两个正整数 m 和 n ,求其最大公约数和最小公倍数。
时间: 2023-11-10 09:08:08 浏览: 98
下面是用 C++ 实现的代码:
```cpp
#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 * b / gcd(a, b);
}
int main() {
int m, n;
cout << "请输入两个正整数 m 和 n:" << endl;
cin >> m >> n;
cout << "它们的最大公约数是:" << gcd(m, n) << endl;
cout << "它们的最小公倍数是:" << lcm(m, n) << endl;
return 0;
}
```
使用辗转相除法求最大公约数,再用最小公倍数等于两数之积除以最大公约数的公式求最小公倍数。
相关问题
C++:输入两个正整数m和n,求其最大公约数和最小公倍数。
C++代码如下:
```
#include<iostream>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
int a=m,b=n;
while(b!=0)
{
int r=a%b;
a=b;
b=r;
}
cout<<"最大公约数为:"<<a<<endl;
cout<<"最小公倍数为:"<<m*n/a<<endl;
return 0;
}
```
解释:首先输入两个正整数m和n,然后定义两个变量a和b,将m和n分别赋值给它们。接着使用辗转相除法求最大公约数,直到b等于0为止,此时a的值就是最大公约数。最后输出最大公约数和最小公倍数(最小公倍数等于两数之积除以最大公约数)。
使用DEV C++生成输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35
好的,我可以给你提供一个 C++ 的实现,使用辗转相除法求最大公约数,使用两数乘积除以最大公约数求最小公倍数。下面是代码实现:
```c++
#include <iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
if (a % b == 0) {
return b;
} else {
return gcd(b, a % b);
}
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int m, n;
cin >> m >> n;
cout << gcd(m, n) << " " << lcm(m, n) << endl;
return 0;
}
```
你可以在 DEV C++ 中编译并运行这段代码,获得和 Python 版本相同的结果。
阅读全文