#include <stdio.h>

typedef long long int lli;

lli gcd(lli x,lli y){if(y==0)return x;return gcd(y,x%y);}

/* rögzített n-re legyen G(k)=gcd(a[k],a[k+1],...,a[n])
   ekkor r<s-re G(r)|G(s) így G() monoton növő
   és G() legfeljebb log2(a[n])+1<50 különböző értéket vehet fel
   csak a különböző G értékeket tároljuk és hogy ezeket milyen hosszan veszi fel ( ez utóbbit az L tömbben )
   , ha n-et 1-gyel növeljük akkor nyilván új G(k)=gcd(G(k),a[n+1]).
*/
int main(void){
    
    int i,j,k,n,len,len2,L[50];
    lli a,ans,value,G[50];

    scanf("%d%lld",&n,&G[0]);
    ans=G[0];L[0]=1;len=1;
    for(i=1;i<n;i++){
        scanf("%lld",&a);
        for(j=len-1;j>=0;j--)G[j+1]=gcd(G[j],a),L[j+1]=L[j]+1;
	    G[0]=a;L[0]=1;
	    len2=0;
	    for(j=0;j<=len;j=k){
	       for(k=j;k<=len&&G[k]==G[j];k++);
	       G[len2]=G[j];L[len2]=L[k-1];
	       value=(lli)G[len2]*L[len2];len2++;
	       if(value>ans)ans=value;
	    }
	    len=len2;
    }
    printf("%lld\n",ans);
    
    return 0;
}
