#include <bits/stdc++.h>
using namespace std;
bool isprime[100008];
void sieve(int n) {
  long long int i, j;
  for (i = 3; i <= n; i += 2) isprime[i] = true;
  for (i = 3; i <= n; i += 2) {
    if (isprime[i]) {
      for (j = i * i; j <= n; j += i) {
        if (isprime[j]) isprime[j] = false;
      }
    }
  }
  isprime[4] = true;
}
int main() {
  int i, j, k, n, m, v;
  bool a[100009], flag = false, in = false;
  cin >> n;
  for (i = 0; i < n; i++) cin >> a[i];
  sieve(n + 2);
  for (i = 1; i * i <= n; i++) {
    if (isprime[i] && n % i == 0 && i > 2) {
      for (j = 0; j < n / i; j++) {
        flag = true;
        for (k = 1, v = j; k <= i; k++) {
          if (!a[v]) {
            flag = false;
            break;
          }
          v += n / i;
        }
        if (flag) {
          cout << "YES";
          return 0;
        }
      }
    }
    if (isprime[n / i] && n % i == 0 && (n / i) > 2) {
      for (j = 0; j < i; j++) {
        flag = true;
        for (k = 1, v = j; k <= n / i; k++) {
          if (!a[v]) {
            flag = false;
            break;
          }
          v += i;
        }
        if (flag) {
          cout << "YES";
          return 0;
        }
      }
    }
  }
  cout << "NO";
  return 0;
}
