import java.util.*;
public class Codeforces{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int t=sc.nextInt();
		for(int i=0;i<t;i++) {
			int n=sc.nextInt();
			sc.nextLine();
			String[] a=sc.nextLine().split(" ");
			Arrays.sort(a,new Comparator<String>() {
				public int compare(String s1,String s2) {
					if(s1.length()!=s2.length()) {
						return s1.length()-s2.length() ;
					}
					else {
						for(int p=0;p<s1.length();p++) {
							if(!String.valueOf(s1.charAt(p)).equals(String.valueOf(s2.charAt(p)))) {
								return Integer.valueOf(String.valueOf(s1.charAt(p)))-Integer.valueOf((String.valueOf(s2.charAt(p))));
							}
						}
						return Integer.valueOf(s1)-Integer.valueOf(s2);
					}
				}
			});
			String b[] =new String[n];
			String c[] =new String[n];
			b[0]=a[n-1];
			c[0]=b[0];
			for(int j=1;j<n;j++) {
				List<String> gcd=new LinkedList<>();
				Map<String,Integer> m=new HashMap<>();
				for(int k=n-2;k>=0;k--) {
					for(int l=Math.min(Integer.valueOf(c[j-1]),Integer.valueOf(a[k]));l>0;l--) {
						if(Integer.valueOf(c[j-1])%l==0 && Integer.valueOf(a[k])%l==0) {
							gcd.add(String.valueOf(l));
							m.put(String.valueOf(l),k);
						}
					}
				}
				Collections.sort(gcd,Collections.reverseOrder());
				c[j]=gcd.get(0);
				b[j]=String.valueOf(a[m.get(c[j])]);
				a[m.get(c[j])]="0";
			}
			for(int j=0;j<n;j++) {
				System.out.print(b[j]+" ");
			}
			System.out.println();
		}
	}
}