#include<bits/stdc++.h>
using namespace std;
const int maxn=5e5+10;
int t,n,sum,d,a[maxn],v[maxn],p[maxn];
bool w[1000000010];
void prime()
{
for(int i=2;i<=20010;i++)
{
if(!v[i])
{
p[++sum]=i;
v[i]=i;
}
for(int j=1;j<=sum && i*p[j]<=20010;j++)
{
v[i*p[j]]=p[j];
if(i%p[j]==0) break;
}
}
}
int gcd(int x,int y)
{
if(y==0) return x;
return gcd(y,x%y);
}
void init()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=sum;i++)
{
// cout<<"-- "<<p[i]<<endl;
w[i]=0;
}
}
bool check(int i)
{
for(int j=1;j<=sum && p[j]*p[j]<=a[i];j++)
{
if(a[i]%p[j]==0)
{
// cout<<" "<<a[i]<<" "<<p[j]<<endl;
if(w[p[j]])
{
return false;
}
w[p[j]]=1;
}
while(a[i]%p[j]==0) a[i]/=p[j];
}
if(a[i]!=1)
{
if(w[a[i]])
{
return false;
}
w[a[i]]=1;
}
return true;
}
void work()
{
if(n==2)
{
cout<<"Yes\n";
return;
}
d=a[1];
for(int i=2;i<=n;i++) d=gcd(d,a[i]);
// cout<<" "<<d<<endl;
if(d!=1)
{
cout<<"No\n";
return;
}
bool ok=1;
for(int i=1;i<=n;i++)
{
if(!check(i)) ok=0;
}
if(ok) cout<<"Yes\n";
else cout<<"No\n";
}
int main()
{
// freopen("1.in","r",stdin);
// freopen("1.out","w",stdout);
prime();
cin>>t;
while(t--)
{
init();
work();
}
return 0;
}