查找 Jumbo GCD 子数组的Python程序
给定一个数组,编写一个程序,在给定数组的所有大小 >= 2 的子数组中找出最大的 GCD。
例子:
Input list: [2, 3, 4, 4, 4]
Output: 4
Input list: [3, 7, 2, 9, 18, 5, 1, 13 ]
Output: 9
方法:
- 导入Python的数学模块
- 在循环遍历列表时,引入一个变量(比如 V1)来存储列表中每个元素的 gcd。
- 使用循环遍历数组或列表的元素。
- 在每次迭代中调用math.gcd()函数。
- 在每次迭代时将 math.gcd()函数的结果存储到另一个变量(例如 V2)。
- 现在比较 V1 和 V2。如果 V2 大于 V1,则设置 V1 等于 V2,否则通过。
- 让循环运行并打印出 V1 的最终值。
您可以在下面找到上述方法的实现:
示例 1:
Python3
import math
# input list
List = [2, 3, 4, 4, 4 ]
max1 = 0
for i in range(len(List)-1):
# use math.gcd() function
gcd1 = math.gcd(List[i], List[i + 1])
if(gcd1>max1):
max1 = gcd1
# print max1
# as the result
print(max1)
Python3
import math
# input list
List = [3, 7, 2, 9, 18, 5, 1, 13 ]
max1 = 0
for i in range(len(List)-1):
# use math.gcd() function
gcd1 = math.gcd(List[i], List[i + 1])
if(gcd1>max1):
max1 = gcd1
# print max1
# as the result
print(max1)
输出:
4
解释:
对于给定的数组,具有最大 gcd 的子数组之一是 [3, 5],其 gcd 为 4。
示例 2:
Python3
import math
# input list
List = [3, 7, 2, 9, 18, 5, 1, 13 ]
max1 = 0
for i in range(len(List)-1):
# use math.gcd() function
gcd1 = math.gcd(List[i], List[i + 1])
if(gcd1>max1):
max1 = gcd1
# print max1
# as the result
print(max1)
输出:
9
解释:
对于给定的数组,具有最大 gcd 的子数组之一是 [4, 5],其 gcd 为 9。