#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long
const int N = 300002;
const int INF = 1e9;
const int mod = 1e9+7;
int mob[N];
int lpf[N];
int fre[N];
int cnt[N];
void sieve(){
for(int i=2;i<N;++i){
if(!lpf[i])
for(int j=i;j<N;j+=i)if(!lpf[j])lpf[j]=i;
}
}
void mobius(){
mob[1]=1;
for(int i=2;i<N;++i){
if (lpf[i/lpf[i]]==lpf[i])mob[i]=0;
else mob[i]=-1 * (mob[i/lpf[i]]);
}
}
__int128 C(int a, int b){
__int128 res=1;
for(int i=a-b+1;i<=a;++i){
res *= i;
}
for(int i=1;i<=b;++i)res/=i;
return res;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
// freopen("bhlt_bai5.inp","r",stdin);
// freopen("bhlt_bai5.out","w",stdout);
sieve();
mobius();
int n; cin >> n;
vector<int> ar(n);
int maxA=0;
for(int i=0;i<n;++i)cin>>ar[i],fre[ar[i]]++,maxA=max(maxA,ar[i]);
int g=ar[0];
for(int i=1;i<n;++i)g=__gcd(g,ar[i]);
if (g != 1){
return (cout << -1),0;
}
for(int i=1;i<=maxA;++i){
for(int j=i;j<=maxA;j+=i)cnt[i]+=fre[j];
}
for (int k = 1; k <= n; ++k) {
__int128 sum = 0;
for (int d = 1; d <= maxA; ++d) {
if (cnt[d] < k) continue;
sum += (__int128)mob[d] * C(cnt[d], k);
}
if (sum > 0) {
cout << k << "\n";
return 0;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGludCBsb25nIGxvbmcKCmNvbnN0IGludCBOID0gMzAwMDAyOwpjb25zdCBpbnQgSU5GID0gMWU5Owpjb25zdCBpbnQgbW9kID0gMWU5Kzc7CgppbnQgbW9iW05dOwppbnQgbHBmW05dOwppbnQgZnJlW05dOwppbnQgY250W05dOwoKdm9pZCBzaWV2ZSgpewogICAgZm9yKGludCBpPTI7aTxOOysraSl7CiAgICAgICAgaWYoIWxwZltpXSkKICAgICAgICBmb3IoaW50IGo9aTtqPE47ais9aSlpZighbHBmW2pdKWxwZltqXT1pOwogICAgfQp9Cgp2b2lkIG1vYml1cygpewogICAgbW9iWzFdPTE7CiAgICBmb3IoaW50IGk9MjtpPE47KytpKXsKICAgICAgICBpZiAobHBmW2kvbHBmW2ldXT09bHBmW2ldKW1vYltpXT0wOwogICAgICAgIGVsc2UgbW9iW2ldPS0xICogKG1vYltpL2xwZltpXV0pOwogICAgfQp9CgoKX19pbnQxMjggQyhpbnQgYSwgaW50IGIpewogICAgX19pbnQxMjggcmVzPTE7CiAgICBmb3IoaW50IGk9YS1iKzE7aTw9YTsrK2kpewogICAgICAgIHJlcyAqPSBpOwogICAgfQogICAgZm9yKGludCBpPTE7aTw9YjsrK2kpcmVzLz1pOwogICAgcmV0dXJuIHJlczsKfQoKCnNpZ25lZCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIC8vIGZyZW9wZW4oImJobHRfYmFpNS5pbnAiLCJyIixzdGRpbik7CiAgICAvLyBmcmVvcGVuKCJiaGx0X2JhaTUub3V0IiwidyIsc3Rkb3V0KTsKICAgIHNpZXZlKCk7CiAgICBtb2JpdXMoKTsKICAgIGludCBuOyBjaW4gID4+IG47CiAgICB2ZWN0b3I8aW50PiBhcihuKTsKICAgIGludCBtYXhBPTA7CiAgICBmb3IoaW50IGk9MDtpPG47KytpKWNpbj4+YXJbaV0sZnJlW2FyW2ldXSsrLG1heEE9bWF4KG1heEEsYXJbaV0pOwogICAgaW50IGc9YXJbMF07CiAgICBmb3IoaW50IGk9MTtpPG47KytpKWc9X19nY2QoZyxhcltpXSk7CiAgICBpZiAoZyAhPSAxKXsKICAgICAgICByZXR1cm4gKGNvdXQgPDwgLTEpLDA7CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1tYXhBOysraSl7CiAgICAgICAgZm9yKGludCBqPWk7ajw9bWF4QTtqKz1pKWNudFtpXSs9ZnJlW2pdOwogICAgfQogICAgZm9yIChpbnQgayA9IDE7IGsgPD0gbjsgKytrKSB7CiAgICAgICAgX19pbnQxMjggc3VtID0gMDsKICAgICAgICBmb3IgKGludCBkID0gMTsgZCA8PSBtYXhBOyArK2QpIHsKICAgICAgICAgICAgaWYgKGNudFtkXSA8IGspIGNvbnRpbnVlOwogICAgICAgICAgICBzdW0gKz0gKF9faW50MTI4KW1vYltkXSAqIEMoY250W2RdLCBrKTsKICAgICAgICB9CiAgICAgICAgaWYgKHN1bSA+IDApIHsKICAgICAgICAgICAgY291dCA8PCBrIDw8ICJcbiI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMDsKfQo=