#include <iostream>
#include <bits/stdc++.h>

using namespace std;
typedef long long int ll;

ll gcds[21][21];
vector<pair<ll, ll>> pairs;
ll numPairs = 0;
ll ans = 0;
vector<ll> optimal;

ll gcd(ll a, ll b) {
    return b ? gcd(b, a % b) : a;
}

int main() {
    ll n;
    cin >> n;
    vector<ll> a(n);
    for (auto &it: a) cin >> it;

    for (ll i = 1; i < 21; ++i) {
        for (ll j = 1; j < 21; ++j) {
            gcds[i][j] = gcd(i, j);
        }
    }

    vector<ll> counts(20);
    for (ll i = 0; i < n; ++i) {
        counts[a[i] - 1]++;
    }

    vector<ll> row;
    if (counts[0] != 0) row.emplace_back(1);
    if (counts[10] != 0) row.emplace_back(11);
    if (counts[12] != 0) row.emplace_back(13);
    if (counts[16] != 0) row.emplace_back(17);
    if (counts[18] != 0) row.emplace_back(19);
    if (counts[6] != 0) {
        row.emplace_back(7);
        if (counts[13] != 0) {
            row.emplace_back(14);
            if (counts[1] != 0) row.emplace_back(2);
        }
    } else if (counts[13] != 0 && counts[1] != 0) {
        pairs.emplace_back(make_pair(2, 14));
        numPairs++;
    } else if (counts[13] != 0) pairs.emplace_back(make_pair(14, 14));
    else if (counts[1] != 0) pairs.emplace_back(make_pair(2, 2));

    for (ll i = 0; i < 20; ++i) {
        if (counts[i] != 0 && i != 0 && i != 10 && i != 12 && i != 16 && i != 18 && i != 6 && i != 19 && i != 17 &&
            i != 15 && i != 13 && i != 1) {
            if (i == 9 && counts[19] != 0) {
                pairs.emplace_back(make_pair(10, 20));
                numPairs++;
                continue;
            }
            if (i == 8 && counts[17] != 0) {
                pairs.emplace_back(make_pair(9, 18));
                numPairs++;
                continue;
            }
            if (i == 7 && counts[15] != 0) {
                pairs.emplace_back(make_pair(8, 16));
                numPairs++;
                continue;
            }
            pairs.emplace_back(make_pair(i + 1, i + 1));
        }
    }

    ll start = -1;
    if (!row.empty()) start = row[row.size() - 1];

    vector<ll> perm(pairs.size());
    for (ll i = 0; i < perm.size(); ++i) {
        perm[i] = i;
    }
    n = perm.size();

    do {
        for (ll i = 0; i < pow(2, numPairs); ++i) {
            vector<ll> seq;
            ll curPair = 0;
            ll cur = 0;
            for (ll j = 0; j < n; ++j) {
                if (pairs[perm[j]].first == pairs[perm[j]].second) {
                    if (start != -1 && j == 0) {
                        cur += gcds[start][pairs[perm[j]].first];
                        seq.emplace_back(pairs[perm[j]].first);
                        continue;
                    }
                    if (j > 0) {
                        cur += gcds[seq[seq.size() - 1]][pairs[perm[j]].first];
                    }
                    seq.emplace_back(pairs[perm[j]].first);
                } else {
                    cur += pairs[perm[j]].first;
                    if (((i / (ll) pow(2, curPair)) % 2) == 0) {
                        if (start != -1 && j == 0) {
                            cur += gcds[start][pairs[perm[j]].first];
                            seq.emplace_back(pairs[perm[j]].first);
                            seq.emplace_back(pairs[perm[j]].second);
                            continue;
                        }
                        if (j > 0) {
                            cur += gcds[seq[seq.size() - 1]][pairs[perm[j]].first];
                        }
                        seq.emplace_back(pairs[perm[j]].first);
                        seq.emplace_back(pairs[perm[j]].second);
                    } else {
                        if (start != -1 && j == 0) {
                            cur += gcds[start][pairs[perm[j]].second];
                            seq.emplace_back(pairs[perm[j]].second);
                            seq.emplace_back(pairs[perm[j]].first);
                            continue;
                        }
                        if (j > 0) {
                            cur += gcds[seq[seq.size() - 1]][pairs[perm[j]].second];
                        }
                        seq.emplace_back(pairs[perm[j]].second);
                        seq.emplace_back(pairs[perm[j]].first);
                    }
                    curPair++;
                }
            }
            if (cur > ans) optimal = seq;
            ans = max(ans, cur);
        }
    } while (next_permutation(perm.begin(), perm.end()));


    for (ll i = 0; i < 20; ++i) {
        if (counts[i] != 0) ans += (counts[i] - 1) * (i + 1);
    }
    for (ll i = 1; i < row.size(); ++i) {
        ans += gcds[row[i - 1]][row[i]];
    }
    cout << ans << endl;

    return 0;
}