#include <iostream>
#include <cmath>
#include <vector>
#include <map>
#include <set>
#include <string>
#include <cstring>
#include <queue>
#include <ctime>
#include <cassert>
#include <cstdio>
#include <algorithm>
#include <unordered_set>
#include <unordered_map>
#include <bitset>
#include <random>
#include <functional>

using namespace std;

#define F first
#define S second
#define pb push_back
#define epr(...) fprintf(stderr, __VA_ARGS__)
#define db(x) cerr << #x << " = " << x << endl
#define db2(x, y) cerr << "(" << #x << ", " << #y << ") = (" << x << ", " << y << ")\n"; 
#define db3(x, y, z) cerr << "(" << #x << ", " << #y << ", " << #z << ") = (" << x << ", " << y << ", " << z << ")\n"
#define dbv(a) cerr << #a << ": "; for (auto& xxxx: a) cerr << xxxx << " "; cerr << endl;
#define forn(i, n) for (int i = 0; i < (int)(n); i++)
#define all(a) (a).begin(), (a).end()
#define sz(a) (int)a.size()
#define pw(n) (1ll << (n))
#define equal equalll
#define less lesss

typedef double dbl;
typedef long long ll;
const int N = -1;
const int INF = 1.01e9;
typedef vector<int> vi;



int main() {
#ifdef HOME 
    assert(freopen("in", "r", stdin));
#endif
    int T = 1e6 + 10;
    vector<int> lp(T);
    vector<int> pr;
    for (int i = 2; i < T; i++) {
        if (lp[i] == 0) {
            lp[i] = i;
            pr.pb(i);
        }
        for (int j = 0; j < sz(pr) && pr[j] <= lp[i] && i * pr[j] < T; j++) {
            lp[i * pr[j]] = pr[j];
        }
    }

    int n;
    scanf("%d", &n);
    ll answer = 0;
    for (int i = 0; i < n; i++) {
        ll x;
        scanf("%lld", &x);
        answer += x;
        ll xx = x;
        vector<ll> div;
        for (auto y: pr) {
            if (y * y > x) break;
            for (; x % y == 0; x /= y) {
                div.pb(y);
            }
        }
        if (x > 1) {
            div.pb(x);
        }
        ll cnt = 1;
        sort(all(div));
        reverse(all(div));
        for (auto d: div) {
            xx /= d;
            answer += cnt;
            cnt *= d;
        }
    }

    cout << answer << endl;
   
    
#ifdef HOME 
    epr("time = %d ms\n", (int)(clock() * 1000. / CLOCKS_PER_SEC));
#endif
    return 0;
}