python算最大公约数和最小公倍数
时间: 2024-10-28 17:07:06 浏览: 21
在Python中,计算两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)有多种方法。这里提供两种常用的算法:
**1. 最大公约数(GCD)**
使用math库中的gcd函数可以直接求得两个数的最大公约数:
```python
import math
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
a = 48
b = 18
print("The GCD of", a, "and", b, "is", gcd(a, b))
```
如果需要自定义算法,欧几里得算法是一种经典的方法:
```python
def gcd_custom(a, b):
while b != 0:
a, b = b, a % b
return a
print(gcd_custom(48, 18))
```
**2. 最小公倍数(LCM)**
通常可以用最大公约数来计算最小公倍数,因为两个数的乘积等于它们的最大公约数和最小公倍数的乘积:
```python
def lcm(a, b):
return (a * b) // gcd(a, b)
print("The LCM of", a, "and", b, "is", lcm(a, b))
```
或者也可以先求出较大的那个数,然后取两者乘积除以较小的那个数:
```python
def lcm_alternative(a, b):
larger_num = max(a, b)
return larger_num * abs(a / gcd_custom(a, b)) if a != b else larger_num
print(lcm_alternative(48, 18))
```
以上就是Python中计算最大公约数和最小公倍数的基本方法。
阅读全文