#include <bits/stdc++.h>
using namespace std;
constexpr int INF = 1e9 + 1;
constexpr long long LLINF = 1e18 + 1;
template <typename T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <typename T>
T lcm(T a, T b) {
  return a / gcd(a, b) * b;
}
const int nax = 1e5 + 10;
int ar[nax], n;
bool poss(int a) {
  vector<int> first(a, 1);
  ;
  for (int i = 0; i < n; i++) first[i % a] &= ar[i];
  for (int i = 0; i < a; i++)
    if (first[i]) return 1;
  return 0;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n;
  for (int i = 0; i < n; i++) cin >> ar[i];
  for (int i = 1; i <= n; i++)
    if (n % i == 0 && n / i > 2 && poss(i)) {
      printf("YES\n");
      return 0;
    }
  printf("NO\n");
}
