#include <bits/stdc++.h>
using namespace std;
vector<int> v;
void getDivisors(int n) {
  for (int i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      v.push_back(i);
      if (i * i != n) v.push_back(n / i);
    }
  }
}
int main() {
  int n, ma = 0, z;
  map<int, int> mp;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    ma = max(ma, x);
    mp[x]++;
  }
  getDivisors(ma);
  for (int i = 0; i < v.size(); i++) {
    if (mp[v[i]] > 1) {
      mp[v[i]]--;
    } else if (mp[v[i]] == 1) {
      mp.erase(v[i]);
    }
  }
  z = ma;
  ma = 0;
  for (auto it = mp.begin(); it != mp.end(); it++) {
    ma = max(ma, it->first);
  }
  printf("%d %d", z, ma);
  return 0;
}
