Python求两个数m和n的最大公约数和最小公倍数
时间: 2023-11-17 07:24:17 浏览: 40
可以使用辗转相除法来求两个数的最大公约数,同时根据最大公约数和两个数的乘积可以求出最小公倍数。
以下是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`函数则利用最大公约数和两个数的乘积来求最小公倍数。
相关问题
用python求两个整数m和n,求最大公约数和最小公倍数
可以使用辗转相除法来求解最大公约数,即:
```python
def gcd(m, n):
while n:
m, n = n, m % n
return m
```
其中,`m % n` 表示 m 除以 n 的余数。
最小公倍数可以通过最大公约数求得,即 `m * n / gcd(m, n)`。
完整代码如下:
```python
def gcd(m, n):
while n:
m, n = n, m % n
return m
def lcm(m, n):
return m * n // gcd(m, n)
m = 24
n = 36
print("最大公约数:", gcd(m, n))
print("最小公倍数:", lcm(m, n))
```
输出结果:
```
最大公约数: 12
最小公倍数: 72
```
python求两个数的最大公约数和最小公倍数
好的,您的问题是如何用Python求两个数的最大公约数和最小公倍数呢?
我们首先来看最大公约数,常见的算法有最大公约数辗转相除法、欧几里得算法、更相减损法等。这里我给您展示使用辗转相除法来求最大公约数的代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
其中 a 和 b 是要求最大公约数的两个数,这个函数会返回它们的最大公约数。
接下来是最小公倍数的求法,最朴素的想法是枚举两个数的倍数,找到它们的最小公倍数。但这种方式效率很低,我们可以根据最大公约数的定义来求最小公倍数,即两个数的积除以它们的最大公约数。代码如下:
```python
def lcm(a, b):
return a * b // gcd(a, b)
```
其中 // 表示整数除法,返回的结果取整后保留整数部分。
希望可以帮到您,如果您有更多问题,随时可以向我提出。