输入两个正整数m、n,求其最大公约数和最小公倍数c++
时间: 2023-11-03 10:06:41 浏览: 50
可以使用辗转相除法来求解最大公约数,其过程如下:
1. 令r为m除以n的余数,即r=m%n。
2. 若r等于0,则n即为最大公约数;否则,令m=n,n=r,再执行步骤1。
最小公倍数可以通过最大公约数求解,其公式为c=m*n/gcd(m,n)。
以下是Python代码实现:
```python
m = int(input("请输入正整数m:"))
n = int(input("请输入正整数n:"))
# 求最大公约数
a, b = m, n
while b:
a, b = b, a % b
gcd = a
print("最大公约数为:", gcd)
# 求最小公倍数
lcm = m * n // gcd
print("最小公倍数为:", lcm)
```
相关问题
C++输入两个正整数m和n求其最大公约数和最小公倍数
以下是C++代码:
```
#include <iostream>
using namespace std;
int gcd(int m, int n) {
if(n == 0) return m;
return gcd(n, m % n);
}
int lcm(int m, int n) {
return m / gcd(m, n) * n;
}
int main() {
int m, n;
cout << "请输入两个正整数m和n:" << endl;
cin >> m >> n;
cout << "最大公约数为:" << gcd(m, n) << endl;
cout << "最小公倍数为:" << lcm(m, n) << endl;
return 0;
}
```
首先定义了 `gcd` 函数来计算最大公约数,使用递归的方式实现辗转相除法。然后定义 `lcm` 函数来计算最小公倍数,直接使用公式:两数之积等于它们的最大公约数和最小公倍数的乘积。最后在 `main` 函数中读入两个正整数,分别输出最大公约数和最小公倍数即可。
输入两个正整数m和n,求其最大公约数和最小公倍数。c++
这段代码使用了辗转相除法来求解两个正整数m和n的最大公约数和最小公倍数。用户需要输入两个正整数m和n,然后程序会根据输入的数值计算它们的最大公约数和最小公倍数,并输出结果。其中,最大公约数的计算使用了辗转相除法,而最小公倍数则是通过两数相乘再除以最大公约数来计算得出的。
代码中使用了C++语言,主要包括了输入输出流、命名空间、条件语句、循环语句、变量定义和赋值、数学运算等基本语法。如果您想要了解更多关于C++语言的知识,可以参考相关的教材或者在线教程。