#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(a) (int)a.size()
const int mxN = (int)6e5+10;
const int C = (int)1e5+10;
int n;
stack<int> S;
int lst[C], cnt[C];
vector<int> v[C], D[C];
int a[mxN], pr1[mxN], pr2[mxN], nx1[mxN], nx2[mxN];
void solve(){
cin >> n;
for(int i = 0; i < n; i++){
cin >> a[i]; cnt[a[i]]=0;
v[a[i]].clear();
}
fill(pr1,pr1+n,-1); fill(pr2,pr2+n,-1); fill(lst,lst+C,-1);
for(int i = 0; i < n; i++) v[a[i]].pb(i), nx1[i]=nx2[i]=n;
S=stack<int>();
for(int i = 0; i < n; i++){
while(sz(S) and a[S.top()]>=a[i]) S.pop();
if(sz(S)) pr1[i] = S.top();
S.push(i);
}
S=stack<int>();
for(int i = 0; i < n; i++){
while(sz(S) and a[S.top()]<=a[i]) S.pop();
if(sz(S)) pr2[i] = S.top();
S.push(i);
}
S=stack<int>();
for(int i = n-1; i >= 0; i--){
while(sz(S) and a[S.top()]>=a[i]) S.pop();
if(sz(S)) nx1[i] = S.top();
S.push(i);
}
S=stack<int>();
for(int i = n-1; i >= 0; i--){
while(sz(S) and a[S.top()]<=a[i]) S.pop();
if(sz(S)) nx2[i] = S.top();
S.push(i);
}
int ans = 0;
for(int i = 0; i < n; i++){
for(int x : D[a[i]]){
int j = lst[x], k = -1, j2, k2;
if(cnt[x]<sz(v[x])) k=v[x][cnt[x]];
if(j==-1 or j<=pr2[i] or nx1[j]<=i) j=-1;
if(k==-1 or nx2[i]<=k or pr1[k]>=i) k=-1;
if(j==-1 and k==-1) continue;
if(j==-1) j2=max(pr2[i]+1,pr1[k]+1);
else j2=max(pr2[i]+1,pr1[j]+1);
if(k==-1) k2 = min(nx2[i]-1, nx1[j]-1);
else k2=min(nx2[i]-1,nx1[k]-1);
ans = max(ans, k2-j2+1);
}
cnt[a[i]]++; lst[a[i]]=i;
}
cout << ans << "\n";
}
int main(){
ios_base::sync_with_stdio(false); cin.tie(0);
for(int i = 1; i < C; i++)
for(int j = i; j < C; j+=i)
D[j].pb(i);
int t = 1; //cin >> t;
while(t--) solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHN6KGEpIChpbnQpYS5zaXplKCkKCmNvbnN0IGludCBteE4gPSAoaW50KTZlNSsxMDsKY29uc3QgaW50IEMgPSAoaW50KTFlNSsxMDsKCmludCBuOwpzdGFjazxpbnQ+IFM7CmludCBsc3RbQ10sIGNudFtDXTsKdmVjdG9yPGludD4gdltDXSwgRFtDXTsKaW50IGFbbXhOXSwgcHIxW214Tl0sIHByMltteE5dLCBueDFbbXhOXSwgbngyW214Tl07Cgp2b2lkIHNvbHZlKCl7CgljaW4gPj4gbjsgCglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCQljaW4gPj4gYVtpXTsgY250W2FbaV1dPTA7CgkJdlthW2ldXS5jbGVhcigpOwoJfQoKCWZpbGwocHIxLHByMStuLC0xKTsgZmlsbChwcjIscHIyK24sLTEpOyBmaWxsKGxzdCxsc3QrQywtMSk7Cglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB2W2FbaV1dLnBiKGkpLCBueDFbaV09bngyW2ldPW47CgkKCVM9c3RhY2s8aW50PigpOwoJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CgkJd2hpbGUoc3ooUykgYW5kIGFbUy50b3AoKV0+PWFbaV0pIFMucG9wKCk7CgkJaWYoc3ooUykpIHByMVtpXSA9IFMudG9wKCk7CgkJUy5wdXNoKGkpOwoJfQoJUz1zdGFjazxpbnQ+KCk7Cglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCQl3aGlsZShzeihTKSBhbmQgYVtTLnRvcCgpXTw9YVtpXSkgUy5wb3AoKTsKCQlpZihzeihTKSkgcHIyW2ldID0gUy50b3AoKTsKCQlTLnB1c2goaSk7Cgl9CglTPXN0YWNrPGludD4oKTsKCWZvcihpbnQgaSA9IG4tMTsgaSA+PSAwOyBpLS0pewoJCXdoaWxlKHN6KFMpIGFuZCBhW1MudG9wKCldPj1hW2ldKSBTLnBvcCgpOwoJCWlmKHN6KFMpKSBueDFbaV0gPSBTLnRvcCgpOwoJCVMucHVzaChpKTsKCX0KCVM9c3RhY2s8aW50PigpOwoJZm9yKGludCBpID0gbi0xOyBpID49IDA7IGktLSl7CgkJd2hpbGUoc3ooUykgYW5kIGFbUy50b3AoKV08PWFbaV0pIFMucG9wKCk7CgkJaWYoc3ooUykpIG54MltpXSA9IFMudG9wKCk7CgkJUy5wdXNoKGkpOwoJfQoJCglpbnQgYW5zID0gMDsKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCWZvcihpbnQgeCA6IERbYVtpXV0pewoJCQlpbnQgaiA9IGxzdFt4XSwgayA9IC0xLCBqMiwgazI7CgkJCWlmKGNudFt4XTxzeih2W3hdKSkgaz12W3hdW2NudFt4XV07CgkJCWlmKGo9PS0xIG9yIGo8PXByMltpXSBvciBueDFbal08PWkpIGo9LTE7CgkJCWlmKGs9PS0xIG9yIG54MltpXTw9ayBvciBwcjFba10+PWkpIGs9LTE7CgkJCWlmKGo9PS0xIGFuZCBrPT0tMSkgY29udGludWU7CgoJCQlpZihqPT0tMSkgajI9bWF4KHByMltpXSsxLHByMVtrXSsxKTsKCQkJZWxzZSBqMj1tYXgocHIyW2ldKzEscHIxW2pdKzEpOwoJCQkKCQkJaWYoaz09LTEpIGsyID0gbWluKG54MltpXS0xLCBueDFbal0tMSk7CgkJCWVsc2UgazI9bWluKG54MltpXS0xLG54MVtrXS0xKTsKCgkJCWFucyA9IG1heChhbnMsIGsyLWoyKzEpOwoJCX0KCQljbnRbYVtpXV0rKzsgbHN0W2FbaV1dPWk7Cgl9Cgljb3V0IDw8IGFucyA8PCAiXG4iOwp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoMCk7CiAgICBmb3IoaW50IGkgPSAxOyBpIDwgQzsgaSsrKQoJCWZvcihpbnQgaiA9IGk7IGogPCBDOyBqKz1pKQoJCQlEW2pdLnBiKGkpOwogICAgaW50IHQgPSAxOyAvL2NpbiA+PiB0OwogICAgd2hpbGUodC0tKSBzb2x2ZSgpOwkJCn0=