import java.util.*;
public class B {
	static int gcd(int a, int b) 
    { 
      if (b == 0) 
        return a; 
      return gcd(b, a % b);  
    }
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		@SuppressWarnings("resource")
		Scanner sc=new Scanner(System.in);
		int t=0;
		t=sc.nextInt();
		while(t>0) {
			t--;
			int n=sc.nextInt();
			int ans[]=new int[n];
			int max=Integer.MIN_VALUE;
			int arr[]=new int[n];
			for(int i=0;i<n;i++) {
				arr[i]=sc.nextInt();
				max=Math.max(max,arr[i]);
			}
			int c=0,val=0,k=max;
			ans[0]=max;
			max=0;
			HashSet<Integer> hs=new HashSet<>();
			hs.add(ans[0]);
			for(int i=1;i<n;i++) {
				c=0;
				max=0;
				for(int j=0;j<n;j++) {
					if(!hs.contains(arr[j])) {
						c=gcd(k,arr[j]);
						if(c>max) {
							max=c;
							val=arr[j];
						}
					}
				}
				ans[i]=val;
				hs.add(val);
				k=max;
			}
			for(int i=0;i<hs.size();i++) {
				System.out.print(ans[i]+" ");
			}
			System.out.println();
		}
	}

}
