python 求一个list的最小公约数如[8,4,4]的最小公约数为
时间: 2024-03-17 07:42:57 浏览: 137
可以通过先求出这些数的最大公约数,再将每个数除以最大公约数得到最简形式的最小公约数。
以下是 Python 代码实现:
```python
import math
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
def lcm_list(lst):
if len(lst) == 0:
return None
elif len(lst) == 1:
return lst[0]
else:
lcm = lst[0]
for i in range(1, len(lst)):
lcm = lcm * lst[i] // gcd(lcm, lst[i])
return lcm
def simplify_list(lst):
gcd_val = gcd_list(lst)
return [i // gcd_val for i in lst]
lst = [8, 4, 4]
lcm_val = lcm_list(lst)
min_lcm = simplify_list([lcm_val // i for i in lst])
print(min_lcm) # 输出 [2, 1, 1]
```
代码中的 `gcd` 函数用于求两个数的最大公约数,`lcm_list` 函数用于求一个列表的最小公倍数,`simplify_list` 函数用于将列表中的数化简为最简形式,最后将列表中的数除以它们的最大公约数,得到最小公约数 `[2, 1, 1]`。
阅读全文