#include <bits/stdc++.h>
using namespace std;
const int maxN = 300001, mod = 1000000007;
int cnt[maxN], dp[maxN];
inline void add_mod(int& a, int b) { a = (a + b) % mod; }
inline void mult_mod(int& a, int b) { a = 1LL * a * b % mod; }
int qpow(int a, int b) {
  int res = 1;
  for (; b > 0; b >>= 1) {
    if (b & 1) mult_mod(res, a);
    mult_mod(a, a);
  }
  return res;
}
int npok(int n, int k) {
  if (k < 0 or k > n) return 0;
  int res = 1;
  for (int(i) = (2); (i) < (k + 1); (i)++) mult_mod(res, i);
  res = qpow(res, mod - 2);
  for (int i = n; i > n - k; i--) mult_mod(res, i);
  return res;
}
int main() {
  int n;
  scanf("%d", &n);
  while (n--) {
    int a;
    scanf("%d", &a);
    cnt[a]++;
  }
  for (int(i) = (1); (i) < (maxN); (i)++)
    for (int j = i * 2; j < maxN; j += i) cnt[i] += cnt[j];
  int res = -1;
  for (int i = 7; i > 0; i--) {
    for (int j = maxN - 1; j > 0; j--) {
      dp[j] = npok(cnt[j], i);
      for (int k = j * 2; k < maxN; k += j) add_mod(dp[j], mod - dp[k]);
    }
    if (dp[1] != 0) res = i;
  }
  printf("%d\n", res);
  return 0;
}
