#include <iostream>
#include <bits/stdc++.h>

using namespace std;

bool cond(pair<int,int>a,pair<int,int>b){
    if(a.first<b.first){
      return true;
    }
    else if(a.first==b.first){
          if(a.second<b.second){
            return true;
        }
        return false;
    }
    return false;
}


int main(){
   int t; cin>>t; 
   while(t--){
       int n; cin>>n;
      vector <int> a;
      for(int i=0;i<n;i++){
          int temp; cin>>temp;
          a.push_back(temp);
      }
      sort(a.begin(),a.end());
      int g = a[n-1];
      vector <pair<int,int>> v;
      for(int i=0;i<n-1;i++){
          v.push_back({__gcd(a[i],g),a[i]});
      }
      sort(v.begin(),v.end(),cond);
    //   for(auto i:v){
    //       cout<<i.first<<" "<<i.second<<endl;
    //   }
      cout<<g<<" ";
      for(int i=n-2;i>=0;i--){
          int temp = v[i].second;
          cout<<temp<<" ";
      }cout<<endl;
       
   }
}

