#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int n, w, a[N];
char s[N];
using ll = long long;
inline bool prime(int p) {
  for (int i = 2; i * i <= p; i++)
    if (p % i == 0) return 0;
  return 1;
}
ll qpow(ll a, ll b, ll P) {
  ll ret = 1;
  while (b) {
    if (b & 1) ret = ret * a % P;
    a = a * a % P;
    b >>= 1;
  }
  return ret;
}
int getg(int P) {
  int g = 2;
  while (1) {
    int i;
    for (i = 1; i <= w; i++)
      if (qpow(g, a[i], P) == 1) break;
    if (i > w) return g;
    ++g;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> (s + 1);
  for (int i = 1; i <= n; i++) s[i] -= 48;
  int p = 1;
  const clock_t C = 0.8 * CLOCKS_PER_SEC;
  while (clock() <= C) {
    p += n;
    while (!prime(p)) p += n;
    w = 0;
    for (int i = 2; i * i < p; i++)
      if (!((p - 1) % i)) a[++w] = i, a[++w] = (p - 1) / i;
    int g = getg(p);
    int z = qpow(g, (p - 1) / n, p);
    ll x = 1;
    int y = 0;
    for (int i = 1; i <= n; i++, x = x * z % p) y = (x * s[i] + y) % p;
    if (y) {
      puts("NO");
      return 0;
    }
  }
  puts("YES");
  return 0;
}
