#include <bits/stdc++.h>
using namespace std;
bool isPowerOfTwo(int x) { return (x && !(x & (x - 1))); }
bool is_prime(int n) {
  if (n == 1) return false;
  for (int i = 2; i <= sqrt(n); i++) {
    if (n % i == 0) {
      return false;
    }
  }
  return true;
}
void solve() {
  int n;
  cin >> n;
  long long int a, b;
  cin >> a >> b;
  set<long long int> st;
  st.insert(a);
  st.insert(b);
  for (int i = 2; i * i <= a; i++) {
    if (a % i == 0) {
      st.insert(i);
      st.insert(a / i);
    }
  }
  for (int i = 2; i * i <= b; i++) {
    if (b % i == 0) {
      st.insert(i);
      st.insert(b / i);
    }
  }
  map<pair<long long int, long long int>, long long int> ch;
  ch[{a, b}]++;
  for (int i = 1; i < n; i++) {
    cin >> a >> b;
    if (ch[{a, b}] >= 1) continue;
    ch[{a, b}]++;
    for (auto it = st.begin(); it != st.end();) {
      long long int k = *it;
      if (a % k == 0 || b % k == 0) {
        it++;
      } else {
        it = st.erase(it++);
      }
    }
  }
  if (st.empty())
    cout << "-1";
  else
    cout << (*st.begin());
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
