#include <algorithm>
#include <cstdint>
#include <cstdio>
#include <vector>
using namespace std;
using i64 = int64_t;

vector<i64> divisors(i64 x) {
  vector<i64> v;
  for(i64 d=1; d*d<=x; ++d) {
    if(x % d == 0) {
      v.push_back(d);
      v.push_back(x/d);
    }
  }
  sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end());
  reverse(v.begin(), v.end());
  return v;
}

int main(void) {
  int n; scanf("%d", &n);
  vector<int> a(n);
  i64 acc = 0;
  for(int i=0; i<n; ++i) {
    scanf("%d", &a[i]);
    acc += a[i];
  }
  vector<i64> divs = divisors(acc);
  for(i64 &div : divs) {
    i64 X = acc / div;
    i64 cur = 0;
    bool ok = true;
    for(int i=0; i<n; ++i) {
      cur += a[i];
      if(cur  > X) { ok = false; break; }
      if(cur == X) { cur = 0; }
    }
    if(ok) {
      printf("%ld\n", div);
      return 0;
    }
  }
  return 0;
}