,求出两个数m和n的最大公约数和最小公倍数
时间: 2023-05-28 18:04:22 浏览: 71
可以使用辗转相除法来求最大公约数,具体过程如下:
1. 如果m小于n,则交换m和n的值,使得m大于n。
2. 求出m除以n的余数r。
3. 如果r为0,则n就是最大公约数,返回n。
4. 如果r不为0,则令m=n,n=r,返回步骤2。
最小公倍数可以通过最大公约数来计算,公式为:m*n/最大公约数。
相关问题
Python求两个数m和n的最大公约数和最小公倍数
可以使用辗转相除法来求两个数的最大公约数,同时根据最大公约数和两个数的乘积可以求出最小公倍数。
以下是Python代码实现:
```python
def gcd(m, n):
"""
求最大公约数
"""
while n != 0:
m, n = n, m % n
return m
def lcm(m, n):
"""
求最小公倍数
"""
return m * n // gcd(m, n)
# 测试
print(gcd(24, 36)) # 输出 12
print(lcm(24, 36)) # 输出 72
```
其中,`gcd`函数使用了辗转相除法,不断将较大数除以较小数求余数,直到余数为0,此时较小数就是最大公约数。`lcm`函数则利用最大公约数和两个数的乘积来求最小公倍数。
用除法求两个数m和n的最大公约数和最小公倍数C语言
以下是用除法求两个数m和n的最大公约数和最小公倍数的C语言代码实现:
```c
#include <stdio.h>
// 求最大公约数
int gcd(int m, int n) {
int r;
while (n != 0) {
r = m % n;
m = n;
n = r;
}
return m;
}
// 求最小公倍数
int lcm(int m, int n) {
return m * n / gcd(m, n);
}
int main() {
int m = 12, n = 18;
printf("m和n的最大公约数为:%d\n", gcd(m, n));
printf("m和n的最小公倍数为:%d\n", lcm(m, n));
return 0;
}
```