#include <bits/stdc++.h>
using namespace std;
long long n, allgcd, cnt[300005], dp[300005], cmb[300005][8];
long long gcd(long long a, long long b) {
  if (a < b) swap(a, b);
  if (b == 0) return a;
  return gcd(b, a % b);
}
int main() {
  scanf("%lld", &n);
  allgcd = 0ll;
  for (long long i = 0; i < n; i++) {
    long long tmp;
    scanf("%lld", &tmp);
    cnt[tmp]++;
    allgcd = gcd(allgcd, tmp);
  }
  if (allgcd != 1) {
    printf("-1\n");
    return 0;
  }
  for (long long i = 1; i < 300005; i++)
    for (long long j = i + i; j < 300005; j += i) cnt[i] += cnt[j];
  for (long long i = 0; i < 300005; i++) cmb[i][0] = 1ll;
  for (int k = 1; k <= 7; k++) {
    for (long long i = 1; i < 300005; i++)
      cmb[i][k] = cmb[i - 1][k - 1] + cmb[i - 1][k];
    for (long long i = 300004; i >= 1; i--) {
      dp[i] = cmb[cnt[i]][k];
      for (long long j = i + i; j < 300005; j += i) dp[i] -= dp[j];
    }
    if (dp[1]) {
      printf("%d\n", k);
      return 0;
    }
  }
  printf("-1\n");
  return 0;
  return 0;
}
