#include<bits/stdc++.h>
using namespace std;

//#define int long long
#define f(i,a,b) for(int i = (a); i < (b); ++i)
#define f(i,a,b) for(int i = (a); i < (b); ++i)
#define rep(i,a,b) for(int i = (a); i < (b); ++i)
typedef pair<int, int> pii;
typedef vector<int> vi;


vi first(21);
vi last(21);

vi magical(21);
vi magicvalues = {4,3,7,10};
vi magicconst = {2, 3, 2, 2};
int m = 4;

int subsolve(vi vals) {
	int ret = 0;
	sort(vals.begin(), vals.end());
	do {
		int ans = 0;
		f(i,0,vals.size() - 1) {
			int fr = vals[i];
			int ba = vals[i+1];
			if (magical[fr]) fr = first[fr];
			if (magical[ba]) ba = last[ba];
			ans += __gcd(fr, ba);
			//cerr << fr << " ";
			//cerr << ba << " ";
			//cerr << ans << " -";
		}
		ret = max(ans, ret);
		//cerr << "=";
	} 
	while (next_permutation(vals.begin(), vals.end()));
	return ret;
}


int solve(vi vals) {
	int ret = 0;

	f(i, 0 , 1 << m) {
		f(j,0,4) if (i & (1 << j)) swap(last[j], first[j]);
		ret = max(ret, subsolve(vals));
		f(j,0,4) if (i & (1 << j)) swap(last[j], first[j]);
	}
	
	return ret;
}


signed main() {
	ios_base::sync_with_stdio(0);

	vector<int> counts(21,0);
	int ans = 0;
	bool hno = false;
	int n; cin >> n;
	f(i,0,n) {
		int x; cin >> x;
		if (x != 1 && x != 11 && x != 13 && x != 17 && x != 19) hno = true;
		counts[x]++;
	}
	f(i,0,21) {
		if (counts[i]) ans += (counts[i] - 1) * i;
	}
	if (counts[1]) ans++;
	if (counts[11]) ans++;
	if (counts[13]) ans++;
	if (counts[17]) ans++;
	if (counts[19]) ans++;
	if (!hno) ans--;
	vector<int> values;
	vi good = {2,5,6,12,15,18};
	for (auto i : good) if (counts[i]) values.push_back(i);

	//cerr << ans << "===\n";


	f(i,0,magicvalues.size()) {
		int x = magicvalues[i];
		magical[x] = true;
		int y = x;
		int lastgood = 0;
		while(x < 21) {
			if (counts[x]) {
				ans += lastgood;
				lastgood = x;
				if (!first[y]) { first[y] = x; values.push_back(y); }
				last[y] = x;
			}
			x *= magicconst[i];
		}
	}

	if(hno) ans += solve(values);


	cout << ans << "\n";




}
