import java.util.*;

public class B669{
    static int gcd(int a,int b){
        if(b==0) return a;
        else 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[] ar=new int[n];
			int[] b=new int[n];
			int[] vis=new int[n];
			int max=0;
			int in=0;
			for(int i=0;i<n;i++){
				ar[i]=sc.nextInt();
				if(max<ar[i]){
				    max=ar[i];
				    in=i;
				}
			}
			vis[in]=1;
			b[0]=max;
			int pre=max;
			
			for(int i=1;i<n;i++){
			    max=0;
			    int gd=0;
			    for(int j=0;j<n;j++){
			        if(vis[j]==0){
			            int m=gcd(pre,ar[j]);
			            if(max<m){
			                max=m;
			                in=j;
			                
			            }
			        }
			    }
			    vis[in]=1;
			    b[i]=ar[in];
			    pre=ar[in];
			}
			
			
			for(int i=0;i<n;i++){
			    System.out.print(b[i]+" ");
			}
			System.out.println();
		
		}
	}
}