rt,WA 80pts
#include <bits/stdc++.h>
using namespace std;
inline int read(){
int x=0;bool f=1;char c=getchar();
while(c>'9'||c<'0'){if(c=='-')f=0;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
return f?x:-x;
}
int t,n,a,prime[10000],cnt;
bitset<100000005> vis2;
bitset<10005> vis;
int main(){
for(int i=2;i<=10000;i++){
if(!vis[i]) prime[++cnt]=i;
for(int j=1;j<=cnt;j++){
vis[i*prime[j]]=1;
if(!(i%prime[j]))
break;
}
}
// printf("%d\n",cnt);
t=read();
while(t--){
n=read();
// printf("%d\n",n);
bool flg=0;
for(int i=1;i<=n;i++){
a=read();
for(int j=1;j<=cnt;j++)
if(!(a%prime[j])){
if(vis2[prime[j]]){
flg=1;
break;
}
vis2[prime[j]]=1;
while(!(a%prime[j])) a/=prime[j];
}
// if(flg) puts("ssss");
if(a>1){
if(vis2[a]) flg=1;
vis2[a]=1;
// printf("%d %d\n",i,a);
}
}
puts((flg&&(n^2))?"No":"Yes");
vis2.reset();
}
return 0;
}