#include <bits/stdc++.h>
using namespace std;
long long int INF = 1e9 + 5;
long long int mod = 998244353;
long long int nax = 2750131;
vector<long long int> sieve(nax + 1), p(nax + 1);
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  long long int n;
  cin >> n;
  multiset<long long int, greater<long long int>> st;
  for (long long int i = 0; i < 2 * n; i++) {
    long long int x;
    cin >> x;
    st.insert(x);
  }
  for (long long int i = 2; i * i <= nax; i++) {
    if (!sieve[i]) {
      for (long long int j = i * i; j <= nax; j += i) {
        if (!sieve[j]) {
          sieve[j] = j / i;
        }
      }
    }
  }
  long long int cnt = 1;
  for (long long int i = 2; i <= nax; i++) {
    if (!sieve[i]) {
      p[i] = cnt++;
    }
  }
  while (!st.empty()) {
    long long int no = *st.begin();
    st.erase(st.begin());
    if (!sieve[no]) {
      cout << p[no] << " ";
      st.erase(st.find(p[no]));
    } else {
      cout << no << " ";
      st.erase(st.find(sieve[no]));
    }
  }
  cout << "\n";
}
