#!/bin/python import sys def gcd(a,b): if (b==0): return a else: return gcd(b,a%b) def maximumValue(a): # Return the maximum value of f among all subsegments [l..r]. Sum = 0 Max = 0 Cost = 0 func = [[0 for i in range(len(a))] for j in range(len(a))] for i in range(0,len(a)): for j in range(0,len(a)): arr = [i,j] for k in arr: Sum+=j GCD = gcd(i,j) Max = max(i,j) func[i][j] = GCD*(Sum - Max) Cost = max(max(l) for l in func) return Cost if __name__ == "__main__": n = int(raw_input().strip()) a = map(int, raw_input().strip().split(' ')) result = maximumValue(a) print result