#include using namespace std; int gcd(int a,int b) { while(a!=b) { if(a>b) { return gcd(a-b,b); } else { return gcd(a,b-a); } } return a; } int sum(vectora ,int l,int r) { long long int sum=0; for(int i=l;i<=r;i++) { sum+=a[i]; } return sum; } int max(vectora,int l,int r) { int maxi=0; for(int i=l;i<=r;i++) { if(a[i]>maxi) { maxi=a[i]; } } return maxi; } long maximumValue(vector a) { // Return the maximum value of f among all subsegments [l..r]. int x,n,m; n=a.size(); vectorarr; for(int i=1;i<=n;i++ ) { for(int j=i;j<=n;j++) { for(int z=i+1;z<=j;z++) { x=gcd(a[z],gcd(a[i],a[i+1])); } int sumo=sum(a,i,j); int maximum=max(a,i,j); m=x*(sumo-maximum); arr.push_back(m); } } int p,mum=0; p=arr.size(); for(int i=0;imum) { mum=arr[i]; } } return mum; } int main() { int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long result = maximumValue(a); cout << result << endl; return 0; }