import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
 
public class z2 {
        
         static int gcd(int a,int b){
          if(b==0){
            return a;
          }
          return gcd(b,a%b);
         }
 
 
    public static void main(String[] args)  {
          Scanner sc=new Scanner(System.in);
           int t=sc.nextInt();
           while(t-->0){
            int n=sc.nextInt();
            int arr[]=new int[n];
            ArrayList<Integer> d=new ArrayList<Integer>();
            int max=Integer.MIN_VALUE;
            for(int i=0;i<n;i++){
              int x=sc.nextInt();
              if(x>max){
                max=x;
              }
              arr[i]=x;
              d.add(x);
            }
            Collections.sort(d);
            int gcd=max;
             ArrayList<Integer> b=new ArrayList<Integer>();
             b.add(gcd);
             int k=0;
             if(arr[0]==max){
                     k=1;
             }
             d.remove(d.size()-1);
             if(k==1){
              int max1=Integer.MIN_VALUE;
              int idx=0;
              int g=0;
              while(d.size()!=0){
                idx=0;
                int f=0;
              //  System.out.print("size: "+d.size());
                max1=Integer.MIN_VALUE;
                if(g==0){
                  for(int i=d.size()-1;i>=0;i--){
                                  
                             if(d.get(i)>arr[b.size()]){
                                int gc=gcd(gcd,d.get(i));
                              
                                  if(gc>=max1 ){
                                max1=gc;
                                idx=i;
                                g=1;
                               }
                             }else {
                              break;
                             }
                            
             }
                }else{
                     for(int i=d.size()-1;i>=0;i--){
                                  

                              int gc=gcd(gcd,d.get(i));
                              
                                  if(gc>=max1 ){
                                max1=gc;
                                idx=i;
                               }
                              
                            
                            
                           
                 }
                }
               
        
                        
                    b.add(d.get(idx));
                   // System.out.println("idxxxxxx: "+idx+" max: "+max1+" d: "+d.get(idx));
                 d.remove(idx);
               


             }
           }else{
               int max1=Integer.MIN_VALUE;
              int idx=0;
              while(d.size()!=0){
                idx=0;
                int f=0;
              //  System.out.print("size: "+d.size());
                max1=Integer.MIN_VALUE;
                 for(int i=d.size()-1;i>=0;i--){
                              int gc=gcd(gcd,d.get(i));
                            
                               if(gc>=max1){
                                max1=gc;
                                idx=i;
                               }
                           
                 }
        
                        
                    b.add(d.get(idx));
                   // System.out.println("idxxxxxx: "+idx+" max: "+max1+" d: "+d.get(idx));
                 d.remove(idx);
               
                  // if(max1!=Integer.MIN_VALUE){
                  //   gcd=max1;
                  // }else{
                  //   gcd=1;
                  // }
                  // b.add(d.get(d.size()-1));
                  //                 //    System.out.println("idx: "+idx+" max: "+gcd+" d: "+d.get(d.size()-1));
 
                  // d.remove(d.size()-1);
               }
             }
             
              
         
              
              for(int i=0;i<b.size();i++){
 
             System.out.print(b.get(i)+" ");   
             }
             System.out.println();
              }
 
 
 
 
 
 
 
 
 
 
 
          
        
 
    }
}