#include #define rep(i, n) for (int i = 1; i <= (n); ++i) using namespace std; using ll = long long; int main() { int n; cin >> n; vector p(n+1); rep(i, n) cin >> p[i]; vector used(n+1); vector cnt(n+1); rep(i, n) { if (used[i]) continue; int v = i; vector vs; while (!used[v]) { used[v] = true; vs.push_back(v); v = p[v]; } int l = vs.size(); if (l <= 1) continue; int g = 0; int base = vs[0]; for (int j = 0; j < l; ++j) { g = gcd(g, abs(vs[j]-base)); } if (g) cnt[g] += l-1; } rep(k, n-1) { ll ans = 0; for (int i = k; i < n; i += k) ans += cnt[i]; cout << ans << '\n'; } return 0; }