用python输入整数m和n求最大公约数和最小公倍数
时间: 2024-05-11 22:20:08 浏览: 86
可以使用辗转相除法(欧几里得算法)求最大公约数,最小公倍数则可以通过最大公约数求得。
代码如下:
```python
m = int(input("请输入第一个数:"))
n = int(input("请输入第二个数:"))
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
```
运行结果:
```
请输入第一个数:24
请输入第二个数:36
最大公约数为: 12
最小公倍数为: 72
```
相关问题
输入两个整数m和n求最大公约数和最小公倍数
输入两个整数`m`和`n`,求最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM),可以通过欧几里得算法来计算最大公约数,然后利用公式 `GCD(a, b) * LCM(a, b) = |a * b|` 来计算最小公倍数。以下是步骤:
1. **计算最大公约数** (GCD):
- 如果 `n == 0`,则 `GCD(m, n) = m`,因为任何数和0的最大公约数都是该数本身。
- 否则,递归地应用 `GCD(n, m % n)`。
2. **计算最小公倍数** (LCM):
- 使用上面得到的 `GCD` 和原始的 `m` 和 `n` 计算 `LCM`,即 `LCM = (m * n) / GCD(m, n)`。
以下是这个过程的一个简单示例:
```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)
# 示例
m = int(input("请输入第一个整数m:"))
n = int(input("请输入第二个整数n:"))
gcd_value = gcd(m, n)
lcm_value = lcm(m, n)
print(f"最大公约数(GCD): {gcd_value}")
print(f"最小公倍数(LCM): {lcm_value}")
用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
```
阅读全文