输入ab求最大公约数和最小公倍数python
时间: 2023-07-26 11:36:44 浏览: 233
同样的,使用Python也可以实现求最大公约数和最小公倍数,代码如下:
```python
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
# 主函数
if __name__ == '__main__':
a, b = map(int, input().split())
print("最大公约数:", gcd(a, b))
print("最小公倍数:", lcm(a, b))
```
在主函数中,使用`map`函数将输入的字符串转换为整数,然后调用`gcd`和`lcm`函数分别求最大公约数和最小公倍数,并输出结果。
相关问题
python函数最大公约数和最小倍数
在Python中,计算两个数的最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM)通常使用欧几里得算法(Euclidean algorithm)来求解GCD,然后利用公式`GCD(a, b) * LCM(a, b) = a * b`来得到LCM。
以下是使用math库中的gcd函数计算GCD的示例:
```python
import math
def gcd_lcm(a, b):
# 计算最大公约数
gcd_ab = math.gcd(a, b)
# 使用GCD计算最小公倍数
lcm_ab = (a * b) // gcd_ab
return gcd_ab, lcm_ab
# 示例
num1 = 48
num2 = 18
gcd, lcm = gcd_lcm(num1, num2)
print(f"GCD({num1}, {num2}) = {gcd}")
print(f"LCM({num1}, {num2}) = {lcm}")
Python求两个正整数的最大公约数,最小公倍数
在Python中,计算两个正整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)通常可以使用辗转相除法(欧几里得算法)和公式法来实现。
**求最大公约数 (GCD):**
你可以使用math模块中的gcd函数,例如:
```python
import math
a = 48
b = 18
gcd_ab = math.gcd(a, b)
```
如果你需要手动实现,可以使用递归或迭代的方式:
```python
def gcd_iterative(a, b):
while b != 0:
a, b = b, a % b
return a
a, b = 48, 18
gcd_ab_manual = gcd_iterative(a, b)
```
**求最小公倍数 (LCM):**
有了GCD之后,LCM可以用下面的公式计算:`lcm(a, b) = abs(a * b) / gcd(a, b)`。如果想直接计算,也可以使用math模块:
```python
from fractions import gcd as _gcd # 使用内建gcd避免与math.gcd冲突
lcm_ab = abs(a * b) // _gcd(a, b)
# 或者手动计算
def lcm_iterative(a, b):
lcm = max(a, b)
while True:
if lcm % a == lcm % b == 0:
break
lcm += 1
return lcm
lcm_ab_manual = lcm_iterative(a, b)
```
阅读全文