#include <bits/stdc++.h>
using namespace std;
const int maxn=1e3+100;
int num[maxn];
int num1[maxn];

int gcd(int a,int b)
{

    return a==0?b:gcd(b,b%a);
}
int main()
{

    int T;
    cin>>T;
    while(T--)
    {
        int n;
        cin>>n;
        int Max=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&num[i]);
            Max=max(num[i],Max);
        }
        cout<<Max<<" ";
        int cnt=Max;
        int nnt=0;
        for(int i=0;i<n-1;i++)
        {
            nnt=0;
            int index=0;
            for(int j=1;j<=n;j++)
            {
                if(num[j]==-1||num[j]==Max)
                {
                    continue;
                }
                else if(nnt<__gcd(cnt,num[j]))
                {
                    nnt=__gcd(cnt,num[j]);
                    index=j;
                }

            }
            cout<<num[index]<<" ";

            num[index]=-1;

            cnt=nnt;
        }
        cout<<endl;
    }
    return 0;
}
