def gcd(x,y):
	while(x%y>0):
		x,y=y,x%y
	return y

for _ in range(int(input())):
	n=int(input())
	a=list(map(int,input().split()))
	a.sort(reverse=True)
	f=[0]*n
	f[0]=1
	ans=[a[0]]
	pgcd=a[0]
	for i in range(1,n):
		gmax=-1
		imax=-1
		for j in range(n):
			if(f[j]==0):
				t=gcd(pgcd,a[j])
				if(t>gmax):
					gmax=t
					imax=j
		f[imax]=1
		pgcd=gcd(pgcd,a[imax])
		ans.append(a[imax])
	print(*ans)


