#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define fo(i, start, end) for (ll i = start; i <= end; i++)
#define pfo(i, end, start) for (ll i = end; i >= start; i--)
#define all(x) x.begin(), x.end()
#define sz(x) (ll)x.size()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define sortall(v) sort(all(v))
#define sumv(v) accumulate(all(v), 0LL)
const int MAXN = 300000+5;
vector<int> g[MAXN + 1];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
fo(i, 1, MAXN) {
for (int j = i; j <= MAXN; j += i) {
g[j].pb(i);
}
}
ll t;
cin>>t;
while(t--){
ll n;
cin>>n; unordered_map <ll,ll> p;
fo(i,1,n){
ll g;cin>>g; p[g]++;
}
vector <ll> dp(n+1,-1);
if(p[1]>=1){
dp[1] = 1;
}
fo(i,2,n){ll v = 1e18;
for(auto u : g[i]){
ll p1 = i/u;
// if(i==4){
// cout<<p1<<" "<<u<<"\n";
// }
if(dp[p1]!=-1 && dp[u]!=-1){
v = min(v,dp[p1]+dp[u]);
}
}
if(v!=1e18){
dp[i] = v;
}
if(p[i]>=1){
dp[i] = 1;
}
}
fo(i,1,n){
cout<<dp[i]<<" ";
}
cout<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGw7CiNkZWZpbmUgZm8oaSwgc3RhcnQsIGVuZCkgZm9yIChsbCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspCiNkZWZpbmUgcGZvKGksIGVuZCwgc3RhcnQpIGZvciAobGwgaSA9IGVuZDsgaSA+PSBzdGFydDsgaS0tKQojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSBzeih4KSAobGwpeC5zaXplKCkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHNvcnRhbGwodikgc29ydChhbGwodikpCiNkZWZpbmUgc3Vtdih2KSBhY2N1bXVsYXRlKGFsbCh2KSwgMExMKQoKY29uc3QgaW50IE1BWE4gPSAzMDAwMDArNTsKCnZlY3RvcjxpbnQ+IGdbTUFYTiArIDFdOwoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwoKICAgIAogICAgZm8oaSwgMSwgTUFYTikgewogICAgICAgIGZvciAoaW50IGogPSBpOyBqIDw9IE1BWE47IGogKz0gaSkgewogICAgICAgICAgICBnW2pdLnBiKGkpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgbGwgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSl7CiAgICAJbGwgbjsKICAgIAljaW4+Pm47IHVub3JkZXJlZF9tYXAgPGxsLGxsPiBwOwogICAgCWZvKGksMSxuKXsKICAgIAkJbGwgZztjaW4+Pmc7IHBbZ10rKzsKICAgIAl9CiAgICAJdmVjdG9yIDxsbD4gZHAobisxLC0xKTsKICAgIAlpZihwWzFdPj0xKXsKICAgIAkJZHBbMV0gPSAxOwogICAgCX0KICAgIAlmbyhpLDIsbil7bGwgdiA9IDFlMTg7CiAgICAJCWZvcihhdXRvIHUgOiBnW2ldKXsKICAgIAkJCWxsIHAxID0gaS91OwogICAgCQkJLy8gaWYoaT09NCl7CiAgICAJCQkJLy8gY291dDw8cDE8PCIgIjw8dTw8IlxuIjsKICAgIAkJCS8vIH0KICAgIAkJCWlmKGRwW3AxXSE9LTEgJiYgZHBbdV0hPS0xKXsKICAgIAkJCQl2ID0gbWluKHYsZHBbcDFdK2RwW3VdKTsKICAgIAkJCX0KICAgIAkJfQogICAgCQkKICAgIAkJaWYodiE9MWUxOCl7CiAgICAJCQlkcFtpXSA9IHY7CiAgICAJCX0KICAgIAkJCiAgICAJCWlmKHBbaV0+PTEpewogICAgCQkJZHBbaV0gPSAxOwogICAgCQl9CQogICAgCX0KICAgIAkKICAgIAlmbyhpLDEsbil7CiAgICAJCWNvdXQ8PGRwW2ldPDwiICI7CiAgICAJfQogICAgCQogICAgCWNvdXQ8PCJcbiI7CiAgICB9CgoKCgogICAgcmV0dXJuIDA7Cn0K