#include #include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; atcoder::dsu uf(n); for(int i = 0, v; i < n; i++){ cin >> v; uf.merge(i, v - 1); } vector ans(n); for(auto vec : uf.groups()){ int g = 0; for(int i = 0; i + 1 < vec.size(); i++){ g = gcd(g, vec[i + 1] - vec[i]); } ans[g] += vec.size() - 1; } for(int i = 1; i < n; i++){ for(int j = 2 * i; j < n; j += i) ans[i] += ans[j]; cout << ans[i] << '\n'; } }