import math
for _ in range(int(input())):
    n=int(input())
    a=list(map(int,input().split()))
    b=[]
    v=[0]*n
    a.sort(reverse=True)
    b.append(max(a))
    v[0]=1
    i=1
    curgcd=b[-1]
    # print(a)
    for i in range(n):
        m=-math.inf
        pos=-1
        for j in range(n):
            if v[j]==0:
                if math.gcd(curgcd,a[j])>m:
                    pos=j
                    m=math.gcd(curgcd,a[j])
        b.append(a[pos])
        v[pos]=1
        curgcd=math.gcd(curgcd,a[pos])
    print(*b[:n])