#include<cstdio>
#include<cstring>
using namespace std;
int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
bool vis[1010];
int d[1000];
int main()
{
int T,n;
scanf("%d",&T);
while(T--)
{
memset(vis,0,sizeof(vis));
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&d[i]);
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
vis[gcd(d[i],d[j])]=1;
int t=0,flag=1;
while(flag&&t++<n-3)
{
flag=0;
for(int i=1;i<=1000;i++)
if(vis[i])
for(int j=0;j<n;j++)
{
int GCD=gcd(i,d[j]);
if(!vis[GCD])
{
vis[GCD]=1;
flag=1;
}
}
}
flag=0;
for(int i=1;i<=1000;i++)
if(vis[i])
{
if(flag==0)
{
flag=1;
printf("%d",i);
}
else
printf(" %d",i);
}
printf("\n");
}
}