import sys; input = sys.stdin.buffer.readline sys.setrecursionlimit(10**7) from collections import defaultdict con = 10 ** 9 + 7; INF = float("inf") def getlist(): return list(map(int, input().split())) def divisor(N): divisor_list = [] n = int((N ** 0.5) // 1) for i in range(1, n): if N % i == 0: divisor_list.append(i) divisor_list.append(int(N // i)) if n ** 2 == N: divisor_list.append(n) else: if N % n == 0: divisor_list.append(n) divisor_list.append(int(N // n)) return sorted(divisor_list) #処理内容 def main(): N = int(input()) A = getlist() S = sum(A) div = divisor(S) div = div[::-1] ans = 1 for i in div: val = 0 jud = 1 for j in range(N): val += A[j] if val == i: val = 0 elif val > i: jud = 0 break if jud == 1: ans = int(S // i) print(ans) if __name__ == '__main__': main()