#include <bits/stdc++.h>
using namespace std;
int N;
int A[200002], pos[200002];
int AIB[200002];
int result[200002];
void update(int pos, int val) {
  ++pos;
  for (; pos <= 200000; pos += pos & -pos) AIB[pos] += val;
}
int query(int pos) {
  ++pos;
  int res = 0;
  for (; pos >= 1; pos -= pos & -pos) res += AIB[pos];
  return res;
}
inline bool compare(const int& i1, const int& i2) { return A[i1] < A[i2]; }
int main() {
  cin >> N;
  for (int i = 0; i < N; ++i) {
    cin >> A[i];
    pos[i] = i;
  }
  sort(pos, pos + N, compare);
  for (int i = 0; i < N; ++i) {
    int now = i;
    while (i < N && A[pos[i]] == A[pos[now]]) {
      for (int j = 1; j < N && j * pos[i] + 1 < N; ++j)
        result[j] += query(min(N - 1, j * pos[i] + j)) - query(j * pos[i]);
      ++i;
    }
    i = now;
    while (i < N && A[pos[i]] == A[pos[now]]) {
      update(pos[i], 1);
      ++i;
    }
    --i;
  }
  for (int i = 1; i <= N - 1; ++i) cout << result[i] << ' ';
  cout << '\n';
}
