#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx")
using namespace std;
int a, b, c, d, n, m, k;
int mas[200002], ans[200002];
int u[200002];
inline void add(int p, int v) {
  if (p >= v || p < 0 || v >= n) return;
  if (mas[v] >= mas[p]) return;
  int l = 1;
  if (p) {
    l = v / (p + 1);
    if (l < 1) l = 1;
  } else {
    l = v - 3;
    if (l < 1) l = 1;
  }
  while (l < n && p * l + l < v) {
    ++l;
  }
  if (l >= n) return;
  int r = n - 1;
  if (p > 1) {
    r = (v - 1) / p;
    if (r > n - 1) r = n - 1;
  } else {
    if (p == 1) r = v + 1;
  }
  while (r >= l && (long long)p * r + 1 > v) {
    --r;
  }
  if (r < l) return;
  ++ans[l];
  --ans[r + 1];
}
int main() {
  scanf("%d", &n);
  for (int _n((n)-1), i(0); i <= _n; i++) {
    scanf("%d", &mas[i]);
  }
  memset(u, -1, sizeof(u));
  memset((ans), 0, sizeof(ans));
  for (int _n((n - 1)), i(1); i <= _n; i++) {
    int v = i - 1;
    for (int j = 1; j * j <= v + 1; ++j) {
      int p = v / j;
      if (p < n && u[p] != i) {
        u[p] = i;
        add(p, i);
      }
      if (j < i && u[j] != i) {
        u[j] = i;
        add(j, i);
      }
    }
    if (u[0] != i) {
      u[0] = i;
      add(0, i);
    }
  }
  for (int _n((n)-1), i(0); i <= _n; i++) {
    if (i) ans[i] += ans[i - 1];
  }
  for (int _n((n - 1)), i(1); i <= _n; i++) {
    if (i > 1) printf(" ");
    printf("%d", ans[i]);
  }
  printf("\n");
}
