#include <bits/stdc++.h>
using namespace std;
const int N = 200004;
int n, a[N];
vector<int> st[N << 2];
void build(int p, int x, int y) {
  if (x == y) {
    st[p].push_back(a[x]);
    return;
  }
  build((p << 1), x, ((x + y) >> 1));
  build((p << 1 | 1), ((x + y) >> 1) + 1, y);
  int i = 0, j = 0;
  while (i < (int)st[(p << 1)].size() && j < (int)st[(p << 1 | 1)].size()) {
    if (st[(p << 1)][i] < st[(p << 1 | 1)][j])
      st[p].push_back(st[(p << 1)][i++]);
    else
      st[p].push_back(st[(p << 1 | 1)][j++]);
  }
  while (i < (int)st[(p << 1)].size()) st[p].push_back(st[(p << 1)][i++]);
  while (j < (int)st[(p << 1 | 1)].size())
    st[p].push_back(st[(p << 1 | 1)][j++]);
}
int get(int p, int x, int y, int i, int j, int k) {
  if (i > y || j < x) return 0;
  if (i <= x && y <= j)
    return int(lower_bound(st[p].begin(), st[p].end(), k) - st[p].begin());
  return get((p << 1), x, ((x + y) >> 1), i, j, k) +
         get((p << 1 | 1), ((x + y) >> 1) + 1, y, i, j, k);
}
int main(int argc, char **argv) {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
  build(1, 1, n);
  for (int ans, s, e, i = 1; i < n; ++i) {
    ans = 0;
    for (int j = 1; j <= n; ++j) {
      s = i * (j - 1) + 2, e = i * j + 1;
      if (s > n) break;
      ans += get(1, 1, n, s, min(e, n), a[j]);
    }
    printf("%d ", ans);
  }
  return 0;
}
