#include using namespace std; typedef long long ll; //const int INF = (int)1.01e9; int main() { #ifdef HOME freopen("in", "r", stdin); #endif unordered_map mp; int n; while (scanf("%d", &n) == 1) { vector a(n); for (int i = 0; i < n; i++) scanf("%lld", &a[i]); ll ans = 0; for (ll x : a) { ll cur = x; vector pr; for (ll i = 2; i * i <= cur; i++) { if (cur % i == 0) { pr.push_back(i); //while (cur % i == 0) cur /= i; pr.push_back(cur / i); } } if (cur > 1) pr.push_back(cur); function rec = [&](ll y) { if (mp.count(y)) { return mp[y]; } ll cres = 1; for (ll p : pr) { if (y % p == 0) { cres = max(cres, 1 + p * rec(y / p)); } } return mp[y] = cres; }; ans += rec(x); } cout << ans << endl; } return 0; }