#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
int main(void){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll n;
cin>>n;
vector<ll> arr(n);
ll gcd=0;
int flag=0,c=0;
for(int i=0;i<n;i++) {
cin>>arr[i];
gcd=__gcd(gcd,arr[i]);
if(arr[i]==1 ) {
flag=1;
c++;
}
}
if(flag==1) cout<<n-c;
else if(gcd>1) cout<<"-1";
else{
ll mincnt1=INT_MAX,mincnt2=INT_MAX;
for(int i=0;i<n;i++){
ll gcd1=arr[i],gcd2=arr[i],cnt1=0,cnt2=0;
for(int j=i+1;j<n;j++){
gcd1=__gcd(gcd1,arr[j]);
cnt1++;
if(gcd1==1) break;
}
if(cnt1>0 && gcd1==1)
mincnt1=min(mincnt1,cnt1);
for(int j=i-1;j>=0;j--){
gcd2=__gcd(gcd2,arr[j]);
cnt2++;
if(gcd2==1) break;
}
if(cnt2>0 && gcd2==1)
mincnt2=min(mincnt2,cnt2);
//out<<cnt1<<" "<<cnt2<<endl;
}
cout<<n-1+min(mincnt1,mincnt2);
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAoKaW50IG1haW4odm9pZCl7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoTlVMTCk7CglsbCBuOwoJY2luPj5uOwoJdmVjdG9yPGxsPiBhcnIobik7CglsbCBnY2Q9MDsKCWludCBmbGFnPTAsYz0wOwoJZm9yKGludCBpPTA7aTxuO2krKykgewoJCWNpbj4+YXJyW2ldOwoJCWdjZD1fX2djZChnY2QsYXJyW2ldKTsKCQlpZihhcnJbaV09PTEgKSB7CgkJCWZsYWc9MTsKCQkJYysrOwoJCX0KCX0KCWlmKGZsYWc9PTEpIGNvdXQ8PG4tYzsKCWVsc2UgaWYoZ2NkPjEpIGNvdXQ8PCItMSI7CgllbHNlewoJCWxsIG1pbmNudDE9SU5UX01BWCxtaW5jbnQyPUlOVF9NQVg7CgkJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJCWxsIGdjZDE9YXJyW2ldLGdjZDI9YXJyW2ldLGNudDE9MCxjbnQyPTA7CgkJCWZvcihpbnQgaj1pKzE7ajxuO2orKyl7CgkJCQlnY2QxPV9fZ2NkKGdjZDEsYXJyW2pdKTsKCQkJCWNudDErKzsKCQkJCWlmKGdjZDE9PTEpIGJyZWFrOwoJCQl9CgkJCWlmKGNudDE+MCAmJiBnY2QxPT0xKQoJCQltaW5jbnQxPW1pbihtaW5jbnQxLGNudDEpOwoJCQlmb3IoaW50IGo9aS0xO2o+PTA7ai0tKXsKCQkJCWdjZDI9X19nY2QoZ2NkMixhcnJbal0pOwoJCQkJY250MisrOwoJCQkJaWYoZ2NkMj09MSkgYnJlYWs7CgkJCX0KCQkJaWYoY250Mj4wICYmIGdjZDI9PTEpCgkJCW1pbmNudDI9bWluKG1pbmNudDIsY250Mik7CgkJCS8vb3V0PDxjbnQxPDwiICI8PGNudDI8PGVuZGw7CgkJfQoJCWNvdXQ8PG4tMSttaW4obWluY250MSxtaW5jbnQyKTsKCX0KCXJldHVybiAwOwp9