#!/bin/python3 import sys def find_gcd(x, y): x = abs(x) y = abs(y) while(y): x, y = y, x % y return x def getGCD(l, r, a): num1 = a[l] num2 = a[r] gcd = find_gcd(num1,num2) for i in range(l+2,r-l): gcd = find_gcd(gcd,a[i]) return gcd def getf(l, r, a) : m = [0]*(r-l) s = 0 n = 0 k = 0 for i in range(l, r): m[k] = a[i] k += 1 if a[i] > n : n = a[i] s = sum(m) - n n = 0 return(getGCD(l, r, a)*s) def maximumValue(a): # Return the maximum value of f among all subsegments [l..r]. n = 0 for i in range(0, len(a)) : for j in range(i, len(a)) : p = getf(i, j, a) if p > n : n = p return n if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = maximumValue(a) print(result)