📜  查找 Jumbo GCD 子数组的Python程序

📅  最后修改于: 2022-05-13 01:54:55.173000             🧑  作者: Mango

查找 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。