写一个函数,输入一个数组,输出这个数组内最大和最小值的最大公约数。两个数的最大公约数为能被两个数整除的最大正整数。
时间: 2024-09-27 15:06:40 浏览: 76
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
你可以通过编写一个名为`gcd_of_array`的函数来实现这个功能。首先,我们需要找到数组中的最大值和最小值,然后使用欧几里得算法(Euclidean algorithm)来计算这两个数的最大公约数。下面是一个简单的Python函数示例:
```python
def gcd(a, b):
"""计算两个数的最大公约数"""
while b != 0:
a, b = b, a % b
return a
def gcd_of_array(arr):
"""
输入一个数组,返回数组内最大值和最小值的最大公约数
"""
if not arr: # 检查数组是否为空
return None
max_val = min_val = arr[0] # 初始化最大值和最小值
for num in arr:
max_val = max(max_val, num)
min_val = min(min_val, num)
# 使用gcd函数计算最大值和最小值的最大公约数
return gcd(max_val, min_val)
# 示例
input_arr = [5, 12, 8, 24]
result = gcd_of_array(input_arr)
print(f"给定数组 {input_arr} 的最大值和最小值的最大公约数是: {result}")
阅读全文