#include <bits/stdc++.h>
using namespace std;
const long long N = 3e5 + 10;
const long long mod = 1e9 + 7;
long long n;
long long fac[N], facw[N], a[N], cnt[N], dp[N][10];
long long pw(long long x, long long y) {
  long long res = 1;
  while (y > 0) {
    if (y % 2 == 1) res = res * x % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return res;
}
long long ckn(long long k, long long n) {
  if (k > n) return 0;
  long long res = fac[n];
  res = res * facw[n - k] % mod;
  res = res * facw[k] % mod;
  return res;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin.tie(0);
  fac[0] = 1;
  for (long long i = 1; i < N; ++i) fac[i] = fac[i - 1] * i % mod;
  for (long long i = 0; i < N; ++i) facw[i] = pw(fac[i], mod - 2);
  cin >> n;
  for (long long i = 1; i <= n; ++i) {
    cin >> a[i];
    cnt[a[i]]++;
  }
  for (long long i = 1; i < N; ++i) {
    for (long long idem = 2; i * idem < N; ++idem) cnt[i] += cnt[i * idem];
  }
  for (long long i = N - 1; i >= 1; --i) {
    for (long long j = 1; j <= 7; ++j) {
      long long cur = ckn(j, cnt[i]);
      for (long long idem = 2; i * idem < N; ++idem) {
        cur = (cur + mod - dp[i * idem][j]) % mod;
      }
      dp[i][j] = cur;
    }
  }
  for (long long j = 1; j <= 7; ++j)
    if (dp[1][j] > 0) {
      cout << j;
      return 0;
    }
  cout << "-1";
}
