#include <bits/stdc++.h>
using namespace std;
using namespace std;
const int N = 2e5 + 5;
int a[N], ans[N], n;
vector<int> seg[4 * N];
void build(int p, int s, int e) {
  if (e == s) {
    seg[p].push_back(a[s]);
    return;
  }
  build(2 * p, s, (s + e) / 2);
  build(2 * p + 1, (s + e) / 2 + 1, e);
  for (int i = 0; i < seg[2 * p].size(); i++) seg[p].push_back(seg[2 * p][i]);
  for (int i = 0; i < seg[2 * p + 1].size(); i++)
    seg[p].push_back(seg[2 * p + 1][i]);
  sort(seg[p].begin(), seg[p].end());
}
int l, r, c;
vector<int> g;
int get(int p, int s, int e) {
  if (s > r || e < l) return 0;
  if (s >= l && e <= r) {
    return lower_bound(seg[p].begin(), seg[p].end(), c) - seg[p].begin();
  }
  return get(2 * p, s, (s + e) / 2) + get(2 * p + 1, (s + e) / 2 + 1, e);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  build(1, 1, n);
  for (int k = 1; k < n; k++) {
    int x = 1;
    for (int i = 2; i <= n; i += k) {
      l = i, r = i + k - 1, c = a[x];
      ans[k] += get(1, 1, n);
      x++;
    }
  }
  for (int i = 1; i < n; i++) printf("%d ", ans[i]);
  return 0;
}
