#include <bits/stdc++.h>
using namespace std;
vector<string> token(string a) {
  vector<string> w;
  a.push_back(' ');
  while (!a.empty()) {
    w.push_back(a.substr(0, a.find(" ")));
    a = a.substr(a.find(" ") + 1, a.size() - 1);
  }
  return w;
}
map<string, int> mapik;
vector<string> amapik;
int dodaj(string a) {
  if (mapik.count(a) == 0) {
    mapik[a] = mapik.size() - 1;
    amapik.push_back(a);
  }
  return mapik[a];
}
char tmp_str[1000];
string scanf_string() {
  scanf("%s", tmp_str);
  return tmp_str;
}
const int N = 21000;
int wart[N];
int n;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &wart[i]);
  }
  int res = -1000000000;
  for (int i = 1; i < n; i++)
    if (n / i >= 3) {
      if (n % i == 0) {
        for (int p = 0; p < i; p++) {
          int akt = p;
          int suma = 0;
          while (akt < n) {
            suma += wart[akt];
            akt += i;
          }
          res = max(res, suma);
        }
      }
    }
  printf("%d\n", res);
  return 0;
}
