#include <bits/stdc++.h>

using namespace std;

#define MAXN 20010
#define INF 0x3f3f3f3f
#define mo 1000000007
typedef long long LL;

LL d[MAXN];
LL f[MAXN];
map< LL, LL > g;

int main()
{
#ifdef MYCP
    freopen("data.in", "r", stdin);
#endif // MYCP
    int n; LL a, ans = 0;
    for(scanf("%d", &n); n; --n){
        scanf("%lld", &a);
        if(a == 1){ ++ans; continue; }
        if(g.find(a) != g.end()){
            ans += g[a];
            continue;
        }
        d[0] = 0;
        for(int i = 2; 1LL * i * i <= a; ++i){
            if(a % i) continue;
            d[++d[0]] = i;
            if(1LL * i * i != a) d[++d[0]] = a / i;
        }
        d[++d[0]] = a;
        sort(d + 1, d + 1 + d[0]);
        for(int i = 1, m = d[0]; i <= m; ++i){
            if(g.find(d[i]) != g.end()){
                f[i] = g[d[i]]; continue;
            }
            f[i] = max(1LL, d[i] + 1);
            for(int j = 1; j < i; ++j){
                if(d[i] % d[j]) continue;
                f[i] = max(f[i], d[i] / d[j] * f[j] + 1);
            }
            g[d[i]] = f[i];
        }
        ans += f[d[0]];
    }
    printf("%lld\n", ans);
	return 0;
}