// "ولا تقولن لشيء إني فاعل ذلك غدا"
// "إلا أن يشاء الله واذكر ربك إذا نسيت وقل عسى أن يهديني ربي لأقرب من هذا رشدا"
// LINK :
#include <bits/stdc++.h>
#define ll long long
#define nl '\n'
#define sp ' '
#define all(a) a.begin(),a.end()
#define allr(a) a.rbegin(),a.rend()
#define no cout<<"NO\n"
#define yes cout<<"YES\n"
#define imp cout<<"IMPOSSIBLE\n"
#define ENG_GAMAL ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
using namespace std;
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
const int N = 2e5 + 5, M = 1e3, LOG = 20, inf = 0x3f3f3f3f;
ll infLL = 0x3f3f3f3f3f3f3f3f;
vector<int> primes;
vector<bool> is_prime;
void Sieve(int n = N) {
is_prime.assign(n + 1, true);
is_prime[0] = is_prime[1] = false;
for (int i = 2; i <= n; i++) {
if (is_prime[i]) {
primes.emplace_back(i);
for (ll j = 1LL * i * i; j <= n; j += i) {
is_prime[j] = false;
}
}
}
}
void solve() {
int n;
cin >> n;
vector<int> a(n + 1);
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
vector<int> ans(n + 1);
ans[a[1]]++;
for (int p : primes)
{
vector<int> freq(n + 1);
for (int j = p; j <= n; j += p)
{
freq[a[j]]++;
ans[a[j]] = max(ans[a[j]], freq[a[j]]);
}
}
for (int i = 1; i <= n; i++){
cout << ans[i] << sp;
}
cout << nl;
}
void file()
{
#ifndef ONLINE_JUDGE
freopen("Input.txt", "r", stdin);
freopen("Output.txt", "w", stdout);
freopen("Error.txt", "w", stderr);
#endif
}
int main() {
file();
ENG_GAMAL
// test-independent code ——————————————————————
Sieve();
// ————————————————————————————————————————————
ll t = 1;
// cin >> t;
while (t--)
{
solve();
}
return 0;
}
Ly8gItmI2YTYpyDYqtmC2YjZhNmGINmE2LTZitihINil2YbZiiDZgdin2LnZhCDYsNmE2YMg2LrYr9inIgovLyAi2KXZhNinINij2YYg2YrYtNin2KEg2KfZhNmE2Ycg2YjYp9iw2YPYsSDYsdio2YMg2KXYsNinINmG2LPZitiqINmI2YLZhCDYudiz2Ykg2KPZhiDZitmH2K/ZitmG2Yog2LHYqNmKINmE2KPZgtix2Kgg2YXZhiDZh9iw2Kcg2LHYtNiv2KciCgovLyBMSU5LIDoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbmwgJ1xuJwojZGVmaW5lIHNwICcgJwojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksYS5lbmQoKQojZGVmaW5lIGFsbHIoYSkgYS5yYmVnaW4oKSxhLnJlbmQoKQojZGVmaW5lIG5vIGNvdXQ8PCJOT1xuIgojZGVmaW5lIHllcyBjb3V0PDwiWUVTXG4iCiNkZWZpbmUgaW1wIGNvdXQ8PCJJTVBPU1NJQkxFXG4iCiNkZWZpbmUgRU5HX0dBTUFMIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLy8g4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCUCmNvbnN0IGludCBOID0gMmU1ICsgNSwgTSA9IDFlMywgTE9HID0gMjAsIGluZiA9IDB4M2YzZjNmM2Y7CmxsIGluZkxMID0gMHgzZjNmM2YzZjNmM2YzZjNmOwoKdmVjdG9yPGludD4gcHJpbWVzOwp2ZWN0b3I8Ym9vbD4gaXNfcHJpbWU7Cgp2b2lkIFNpZXZlKGludCBuID0gTikgewogICAgaXNfcHJpbWUuYXNzaWduKG4gKyAxLCB0cnVlKTsKICAgIGlzX3ByaW1lWzBdID0gaXNfcHJpbWVbMV0gPSBmYWxzZTsKCiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyBpKyspIHsKICAgICAgICBpZiAoaXNfcHJpbWVbaV0pIHsKICAgICAgICAgICAgcHJpbWVzLmVtcGxhY2VfYmFjayhpKTsKICAgICAgICAgICAgZm9yIChsbCBqID0gMUxMICogaSAqIGk7IGogPD0gbjsgaiArPSBpKSB7CiAgICAgICAgICAgICAgICBpc19wcmltZVtqXSA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIHNvbHZlKCkgewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIHZlY3RvcjxpbnQ+IGEobiArIDEpOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQogICAgdmVjdG9yPGludD4gYW5zKG4gKyAxKTsKICAgIGFuc1thWzFdXSsrOwogICAgZm9yIChpbnQgcCA6IHByaW1lcykKICAgIHsKICAgICAgICB2ZWN0b3I8aW50PiBmcmVxKG4gKyAxKTsKICAgICAgICBmb3IgKGludCBqID0gcDsgaiA8PSBuOyBqICs9IHApCiAgICAgICAgewogICAgICAgICAgICBmcmVxW2Fbal1dKys7CiAgICAgICAgICAgIGFuc1thW2pdXSA9IG1heChhbnNbYVtqXV0sIGZyZXFbYVtqXV0pOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgc3A7CiAgICB9CiAgICBjb3V0IDw8IG5sOwp9CnZvaWQgZmlsZSgpCnsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oIklucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3BlbigiT3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGZyZW9wZW4oIkVycm9yLnR4dCIsICJ3Iiwgc3RkZXJyKTsKI2VuZGlmCn0KCmludCBtYWluKCkgewogICAgZmlsZSgpOwogICAgRU5HX0dBTUFMCi8vIHRlc3QtaW5kZXBlbmRlbnQgY29kZSDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJQKICAgIFNpZXZlKCk7Ci8vIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAogICAgbGwgdCA9IDE7Ci8vICAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==