1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
n = int(input())
lista = list(map(int, input().split()))
suma = sum(lista)

def sprawdz(k):
    konce = [0] * (n + k + 1)
    aktywne = 0
    for i in range(n):
        aktywne -= konce[i]
        potrzeba = lista[i] - aktywne
        if potrzeba < 0: 
            return False
        if potrzeba > 0:
            if i + k > n: 
                return False
            aktywne += potrzeba
            konce[i + k] = potrzeba
    return aktywne == konce[n]

dzielniki = set()
for i in range(1, int(suma**0.5) + 1):
    if suma % i == 0:
        if i <= n:
            dzielniki.add(i)
        if suma // i <= n:
            dzielniki.add(suma // i)

for k in sorted(dzielniki)[::-1]:
    if sprawdz(k):
        print(k)
        break