#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int M = 3e5 + 5;
int m = 0;
int cnt[M];
long long dp[M][8];
long long power(long long a, long long b) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % MOD;
    b >>= 1;
    a = a * a % MOD;
  }
  return ans;
}
long long C(long long a, long long b) {
  long long ans = 1;
  for (int i = 0; i < b; i += 1) {
    ans = ans * (a - i) % MOD;
  }
  for (int i = 2; i <= b; i += 1) {
    ans = ans * power(i, MOD - 2) % MOD;
  }
  return ans;
}
int main() {
  int n;
  cin >> n;
  map<int, int> a;
  for (int i = 0, x = 0; i < n; i += 1) {
    cin >> x;
    a[x] += 1;
    m = max(m, x);
  }
  m += 1;
  for (int i = 1; i < m; i += 1) {
    cnt[i] = 0;
    for (int j = i; j < m; j += i) {
      if (a.count(j)) cnt[i] += a[j];
    }
  }
  for (int j = 1; j < 8; j += 1) {
    for (int i = m - 1; i > 0; i -= 1) {
      dp[i][j] = 0;
      if (cnt[i] < j) continue;
      dp[i][j] = C(cnt[i], j);
      for (int k = i + i; k < m; k += i) {
        dp[i][j] = (dp[i][j] - dp[k][j] + MOD) % MOD;
      }
    }
    if (dp[1][j] != 0) {
      cout << j << endl;
      return 0;
    }
  }
  cout << -1 << endl;
}
