分别求解n组数据的最大公约数和最小公倍数的代码
时间: 2024-10-16 09:11:53 浏览: 34
C++ 实现求最大公约数和最小公倍数
5星 · 资源好评率100%
在计算一组或多组数据的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)时,我们可以使用欧几里得算法(Euclidean Algorithm)来找到两个数的最大公约数,然后利用性质来求出它们的最小公倍数。
以下是使用Python编写的一个示例,这个函数可以递归地计算两个数的GCD,接着计算任意数量数字的LCM:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def lcm(*numbers):
def lcm_two_numbers(x, y):
return x * y // gcd(x, y)
result = numbers[0]
for num in numbers[1:]:
result = lcm_two_numbers(result, num)
return result
# 示例
data = [48, 18, 96] # 需要计算这组数据的最大公约数和最小公倍数
gcd_value = gcd(data[0], data[1])
lcm_value = lcm(data[0], data[1], data[2])
print(f"最大公约数 (GCD): {gcd_value}")
print(f"最小公倍数 (LCM): {lcm_value}")
阅读全文