//NiceDuck
#include "bits/stdc++.h"
typedef long long ll;
using namespace std;
#define FILE "000"
#define foru(i,a,b) for(int i=(int)(a); i<=(int)(b); ++i)
#define ford(i,a,b) for(int i=(int)(a); i>=(int)(b); --i)
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);
#define pb push_back
#define fi first
#define se second
#define pii pair<int,int>
#define pil pair<int,ll>
#define pli pair<ll,int>
#define MOD 1000000007
#define el "\n"
const int MAX=3e5+5;
int t,n,a[MAX],f[MAX];
vector<pii> g[MAX];
void pre()
{
foru(i,1,3e5)
{
for(int j=1; 1LL*j*j<=i; ++j)
{
if(i%j==0) g[i].pb(make_pair(j,i/j));
}
}
}
void calc()
{
foru(i,1,n) f[i]=1e9;
foru(i,1,n) f[a[i]]=1;
foru(i,1,n)
{
if(f[i]==1)
{
cout<<"1 ";
continue;
}
for(pii p:g[i])
{
f[i]=min(f[i],f[p.fi]+f[p.se]);
}
cout<<(f[i]==1e9 ? -1 : f[i])<<' ';
}
cout<<el;
}
int main()
{
fastio
#ifndef ONLINE_JUDGE
freopen(FILE ".inp","r",stdin);
freopen(FILE ".out","w",stdout);
#endif // ONLINE_JUDGE
pre();
cin>>t;
while(t--)
{
cin>>n; foru(i,1,n) cin>>a[i];
calc();
}
return 0;
}
Ly9OaWNlRHVjawojaW5jbHVkZSAiYml0cy9zdGRjKysuaCIKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRklMRSAiMDAwIgojZGVmaW5lIGZvcnUoaSxhLGIpIGZvcihpbnQgaT0oaW50KShhKTsgaTw9KGludCkoYik7ICsraSkKI2RlZmluZSBmb3JkKGksYSxiKSBmb3IoaW50IGk9KGludCkoYSk7IGk+PShpbnQpKGIpOyAtLWkpCiNkZWZpbmUgZmFzdGlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTsKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgcGlsIHBhaXI8aW50LGxsPgojZGVmaW5lIHBsaSBwYWlyPGxsLGludD4KI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIGVsICJcbiIKCmNvbnN0IGludCBNQVg9M2U1KzU7CmludCB0LG4sYVtNQVhdLGZbTUFYXTsKdmVjdG9yPHBpaT4gZ1tNQVhdOwp2b2lkIHByZSgpCnsKICAgIGZvcnUoaSwxLDNlNSkKICAgIHsKICAgICAgICBmb3IoaW50IGo9MTsgMUxMKmoqajw9aTsgKytqKQogICAgICAgIHsKICAgICAgICAgICAgaWYoaSVqPT0wKSBnW2ldLnBiKG1ha2VfcGFpcihqLGkvaikpOwogICAgICAgIH0KICAgIH0KfQp2b2lkIGNhbGMoKQp7CiAgICBmb3J1KGksMSxuKSBmW2ldPTFlOTsKICAgIGZvcnUoaSwxLG4pIGZbYVtpXV09MTsKICAgIGZvcnUoaSwxLG4pCiAgICB7CiAgICAgICAgaWYoZltpXT09MSkgCiAgICAgICAgewogICAgICAgICAgICBjb3V0PDwiMSAiOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgZm9yKHBpaSBwOmdbaV0pCiAgICAgICAgewogICAgICAgICAgICBmW2ldPW1pbihmW2ldLGZbcC5maV0rZltwLnNlXSk7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PChmW2ldPT0xZTkgPyAtMSA6IGZbaV0pPDwnICc7CiAgICB9CiAgICBjb3V0PDxlbDsKfQoKaW50IG1haW4oKQp7CiAgICBmYXN0aW8KICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKEZJTEUgIi5pbnAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKEZJTEUgIi5vdXQiLCJ3IixzdGRvdXQpOwogICAgI2VuZGlmIC8vIE9OTElORV9KVURHRQogICAgCiAgICBwcmUoKTsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBjaW4+Pm47IGZvcnUoaSwxLG4pIGNpbj4+YVtpXTsKICAgICAgICBjYWxjKCk7CiAgICB9CiAgICAKICAgIHJldHVybiAwOwp9