#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000001 int cnt[10001]; bool f[10001]; int main(){ int N; cin>>N; vector a(N); rep(i,N){ cin>>a[i]; if(i!=0){ cnt[a[i]]++; f[a[i]] = true; } } vector ans; int last = a[0]; while(true){ vector dp(10001,0); rep(i,dp.size())dp[i] = i; for(int j=2;j*j<=last;j++){ if(last%j==0){ int t = j; while(last%j==0){ for(int k=t;kdp[j]){ nxt = j; } } if(nxt==-1)break; ans.push_back(nxt); last = nxt; f[nxt] = false; } vector Ans(1,a[0]); rep(i,ans.size()){ rep(j,cnt[ans[i]])Ans.push_back(ans[i]); } rep(i,N){ if(i!=0)cout<<' '; cout<