#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cstring>
#include <string>
#include <queue>
#include <set>
#include <map>
#include <bitset>
#include <cmath>
#include <stack>
#include <ctime>
#include <unordered_map>
#include <unordered_set>
#include <list>
#pragma comment (linker, "/STACK:256000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

using namespace std;

const int maxN = 110;
const int maxL = 1100000;
bool p[maxL];
int q[maxL], cntq;
int n;
long long a[maxN];
long long d[maxL];
int k;

unordered_map < long long, long long > M;

inline long long value(const vector < pair < long long, int > > &n) {
	long long res = 1;
	for (int i = 0; i < n.size(); ++i) {
		for (int j = 0; j < n[i].second; ++j) {
			res *= n[i].first;
		}
	}
	return res;
}

long long calc(vector < pair < long long, int > > p) {
	long long n = value(p);
	if (M.count(n)) {
		return M[n];
	}
	long long res = 1;
	for (int i = 0; i < p.size(); ++i) {
		if (p[i].second > 0) {
			--p[i].second;
			res = max(res, 1LL + calc(p) * p[i].first);
			++p[i].second;
		}
	}
	return M[n] = res;
}

vector < pair < long long, int > > factor(long long n) {
	long long m = n;
	vector < pair < long long, int > > res;
	for (int i = 0; i < cntq && (long long)(q[i]) * q[i] <= n; ++i) {
		int r = 0;
		while (m % q[i] == 0) {
			++r;
			m /= q[i];
		}
		if (r > 0) {
			res.push_back(make_pair(q[i], r));
		}
	}
	if (m > 1) {
		res.push_back(make_pair(m, 1));
	}
	return res;
}

void gen(const vector < pair < long long, int > > &p, int index, long long v = 1) {
	if (index == p.size()) {
		d[k++] = v;
		return ;
	}
	for (int i = 0; i <= p[index].second && i <= 1; ++i) {
		gen(p, index + 1, v);
		v *= p[index].first;
	}
}

int main() {
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	for (int i = 2; i < maxL; ++i) {
		if (p[i]) {
			continue;
		}
		q[cntq++] = i;
		for (int j = i + i; j < maxL; j += i) {
			p[j] = true;
		}
	}

	cin >> n;
	for (int i = 0; i < n; ++i) {
		cin >> a[i];
	}

	long long res = 0;
	for (int i = 0; i < n; ++i) {
		vector < pair < long long, int > > p = factor(a[i]);
		//k = 0;
		//gen(p, 0);
		//M.clear();
		//sort(d, d + k);
		res += calc(p);
	}
	cout << res << endl;



	return 0;
}