用python求两个整数m和n,求最大公约数和最小公倍数
时间: 2024-05-15 07:01:28 浏览: 89
可以使用辗转相除法来求解最大公约数,即:
```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
```
相关问题
输入两个正整数m和n,求其最大公约数和最小公倍数python
以下是求两个正整数最大公约数和最小公倍数的Python程序:
```python
# 定义函数,求最大公约数
def gcd(m, n):
if m < n:
m, n = n, m
while n != 0:
m, n = n, m % n
return m
# 定义函数,求最小公倍数
def lcm(m, n):
return m * n // gcd(m, n)
# 输入两个正整数
num1, num2 = map(int, input("请输入两个正整数,并用逗号连接:").split(","))
# 输出最大公约数和最小公倍数
print("{}和{}的最大公约数是:{}".format(num1, num2, gcd(num1, num2)))
print("{}和{}的最小公倍数是:{}".format(num1, num2, lcm(num1, num2)))
```
输入两个正整数m和n,求其最大公约数和最小公倍数。Python
在Python中,我们可以使用欧几里得算法(Euclidean Algorithm)来计算两个正整数的最大公约数(GCD),然后利用这个GCD来找到它们的最小公倍数(LCM)。以下是相应的步骤:
1. **求最大公约数 (GCD)**:
```python
def gcd(m, n):
while n != 0:
m, n = n, m % n
return m
```
这个函数通过不断交换 `m` 和 `n` 的值,并取模,直到 `n` 变为 0,此时 `m` 就是最大公约数。
2. **求最小公倍数 (LCM)**:
最小公倍数等于两数之积除以他们的最大公约数。
```python
def lcm(m, n):
return abs(m * n) // gcd(m, n)
```
使用绝对值防止负数的情况,因为 LCM 总是非负的。
**综合代码示例**:
```python
def compute_gcd_lcm(m, n):
gcd_value = gcd(m, n)
lcm_value = lcm(m, n)
print(f"最大公约数 (GCD): {gcd_value}")
print(f"最小公倍数 (LCM): {lcm_value}")
# 测试输入
compute_gcd_lcm(48, 18)
```
运行这段代码,你可以得到给定 `m` 和 `n` 的最大公约数和最小公倍数。
阅读全文