#include <bits/stdc++.h>
using namespace std;
int countSplits(vector<int> &arr){
int n= arr.size();
vector<int> pgcd(n);
vector<int> sgcd(n);
pgcd[0]= arr[0];
for (int i=1;i<n;i++){
pgcd[i]=__gcd(pgcd[i-1],arr[i]);
}
sgcd[n-1]=arr[n-1];
for(int i=n-2;i>=0;i--){
sgcd[i]=__gcd(sgcd[i+1],arr[i]);
}
int count =0;
for(int i=0;i<n-1;i++){
if(pgcd[i]==sgcd[i+1])
count++;
}
return count;
}
int main() {
// your code goes here
int n;
cin>>n;
vector<int>nums(n);
for(int i=0;i<n;i++){
cin>>nums[i];
}
vector<int> pgcd(n);
pgcd[0]=nums[0];
for(int i=1;i<n;i++){
pgcd[i]=__gcd(pgcd[i-1],nums[i]);
}
vector<int> sgcd(n);
sgcd[n-1]=nums[n-1];
for(int i = n-2; i>=0;i--){
sgcd[i]=__gcd(sgcd[i+1],nums[i]);
}
int ans = countSplits(nums);
// Find arrow position
for (int i=0;i<n;i++){
bool arrow = false;
if(i>0 && pgcd[i]!=pgcd[i-1])
arrow = true;
if(i<n-1 && sgcd[i]!=sgcd[i+1])
arrow = true;
if(arrow==true){
vector<int>temp;
for( int j=0;j<n;j++){
if(j!=i)
temp.push_back(nums[j]);
}
ans= max(ans, countSplits(temp));
}
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgY291bnRTcGxpdHModmVjdG9yPGludD4gJmFycil7CglpbnQgbj0gYXJyLnNpemUoKTsKCQoJIHZlY3RvcjxpbnQ+IHBnY2Qobik7CiAgICAgIHZlY3RvcjxpbnQ+IHNnY2Qobik7CiAgICAgIAogICAgICAgcGdjZFswXT0gYXJyWzBdOwogICAgICAgICAgIGZvciAoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICAgICAgcGdjZFtpXT1fX2djZChwZ2NkW2ktMV0sYXJyW2ldKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgIHNnY2Rbbi0xXT1hcnJbbi0xXTsKICAgICAgICBmb3IoaW50IGk9bi0yO2k+PTA7aS0tKXsKICAgICAgICAgICAgc2djZFtpXT1fX2djZChzZ2NkW2krMV0sYXJyW2ldKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW50IGNvdW50ID0wOwogICAgICAgIAogICAgICAgIGZvcihpbnQgaT0wO2k8bi0xO2krKyl7CiAgICAgICAgCWlmKHBnY2RbaV09PXNnY2RbaSsxXSkKICAgICAgICAJY291bnQrKzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNvdW50Owp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuOwoJY2luPj5uOwoJCgl2ZWN0b3I8aW50Pm51bXMobik7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljaW4+Pm51bXNbaV07Cgl9CgkKCXZlY3RvcjxpbnQ+IHBnY2Qobik7CglwZ2NkWzBdPW51bXNbMF07CgkKCWZvcihpbnQgaT0xO2k8bjtpKyspewoJCXBnY2RbaV09X19nY2QocGdjZFtpLTFdLG51bXNbaV0pOwoJfQoJCgl2ZWN0b3I8aW50PiBzZ2NkKG4pOwoJc2djZFtuLTFdPW51bXNbbi0xXTsKCQoJZm9yKGludCBpID0gbi0yOyBpPj0wO2ktLSl7CgkJc2djZFtpXT1fX2djZChzZ2NkW2krMV0sbnVtc1tpXSk7Cgl9CgkKCWludCBhbnMgPSBjb3VudFNwbGl0cyhudW1zKTsKCQoJLy8gRmluZCBhcnJvdyBwb3NpdGlvbgoJZm9yIChpbnQgaT0wO2k8bjtpKyspewoJCWJvb2wgYXJyb3cgPSBmYWxzZTsKCQkKCQlpZihpPjAgJiYgcGdjZFtpXSE9cGdjZFtpLTFdKQoJCWFycm93ID0gdHJ1ZTsKCQkKCQlpZihpPG4tMSAmJiBzZ2NkW2ldIT1zZ2NkW2krMV0pCgkJYXJyb3cgPSB0cnVlOwoJCQoJCWlmKGFycm93PT10cnVlKXsKCQkJdmVjdG9yPGludD50ZW1wOwoJCQkKCQkJZm9yKCBpbnQgaj0wO2o8bjtqKyspewoJCQkJaWYoaiE9aSkKCQkJCXRlbXAucHVzaF9iYWNrKG51bXNbal0pOwoJCQl9CgkJCWFucz0gbWF4KGFucywgY291bnRTcGxpdHModGVtcCkpOwoJCX0KCQkKCX0KCWNvdXQ8PGFuczw8ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=