📅  最后修改于: 2023-12-03 15:12:34.871000             🧑  作者: Mango
GCD 是指最大公约数(Greatest Common Divisor),也称作 HCF(Highest Common Factor),是指在数学中,多个整数的共有因数中最大的一个。例如,8 和 12 的最大公约数是 4。
在序列中,一个序列是由另一个序列通过删除某些元素(可能一个都不删)而形成的,称为原序列的子序列。
在矩阵或数组中,一个子阵列是由原始矩阵或数组中某些行和列所组成的矩阵或数组。
给定一个长度为 n 的整数数组,找到一个长度至少为 2 且具有最大 GCD 的最长子阵列的长度。若存在多个,则输出最小的那个。
def max_gcd_length(arr):
n = len(arr)
gcd = 0
for i in range(n):
gcd = math.gcd(gcd, arr[i])
for i in range(gcd, 0, -1):
count = 0
for j in range(n):
if arr[j] % i == 0:
count += 1
else:
count = 0
if count == 2:
return i
return -1
Markdown代码片段:
```python
def max_gcd_length(arr):
n = len(arr)
gcd = 0
for i in range(n):
gcd = math.gcd(gcd, arr[i])
for i in range(gcd, 0, -1):
count = 0
for j in range(n):
if arr[j] % i == 0:
count += 1
else:
count = 0
if count == 2:
return i
return -1