#include <bits/stdc++.h>
using namespace std;
void solve()
{
    int n;
    cin>>n;
   int mx=-1;
    int a[n],visit[100000]={0};
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        mx=max(mx,a[i]);
    }
    vector<int> ans;
    ans.push_back(mx);
    visit[mx]=1;
    for(int  i=0;i<n;i++)
    {
        int in,t=-1,num;
        for(int j=0;j<n;j++)
        {
            if(visit[a[j]]==0&&__gcd(mx,a[j])>t)
            {
                //cout<<a[j]<<endl;
                //in=j;
                t=__gcd(mx,a[j]);
                num=a[j];
            }
        }
        ans.push_back(num);
        visit[num]=1;
        mx=__gcd(mx,num);


    }
    for(int i=0;i<ans.size()-1;i++)
    {
      cout<<ans[i]<<" ";
    }
    cout<<endl;

}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        solve();
    }



    return 0;
}
