#include <bits/stdc++.h>
using namespace std;
template <class T1, class T2>
inline istream& operator>>(istream& fin, pair<T1, T2>& pr) {
  fin >> pr.first >> pr.second;
  return fin;
}
template <class T0, class T1, class T2>
inline istream& operator>>(istream& fin, tuple<T0, T1, T2>& t) {
  fin >> get<0>(t) >> get<1>(t) >> get<2>(t);
  return fin;
}
template <class T>
inline istream& operator>>(istream& fin, vector<T>& a) {
  for (auto& u : a) fin >> u;
  return fin;
}
template <class T, size_t n>
inline istream& operator>>(istream& fin, array<T, n>& a) {
  for (auto& u : a) fin >> u;
  return fin;
}
void f538() {
  size_t n;
  cin >> n;
  vector<int> a(n);
  cin >> a;
  vector<int> acc(n);
  for (size_t j = 1; j < n; ++j)
    if (a[j] < a[0]) ++acc[j];
  for (size_t i = 1; i < n; ++i)
    for (size_t l = i + 1, r = i + 2, k = 1; r - i - 1 < n;
         l += i, r += i + 1, ++k)
      for (size_t j = max(l, r - i - 1); j < min(r, n); ++j)
        if (a[j] < a[i]) ++acc[k], --acc[(j + i - 1) / i];
  partial_sum(begin(acc) + 1, end(acc), ostream_iterator<int>(cout, " "));
}
int main(const int argc, char* argv[]) {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  f538();
  return EXIT_SUCCESS;
}
