#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef long double ldbl; const int MAX = 10000007; int lp[MAX]; int pr[664580], pr_cnt; deque fff(ll n) { deque ret; int pr_ind = 0; while (n > 1 && pr_ind < pr_cnt && 1ll * pr[pr_ind] * pr[pr_ind] <= n) { while (n % pr[pr_ind] == 0) { n /= pr[pr_ind]; ret.push_back(pr[pr_ind]); } pr_ind++; } if (n > 1) { ret.push_back(n); } return ret; } ll solve(const ll n, deque& pf) { if (pf.empty()) { return 1; } const ll f = pf.front(); pf.pop_front(); return 1 + f * solve(n / f, pf); } int main() { for (int i = 2; i < MAX; ++i) { if (!lp[i]) { lp[i] = i; pr[pr_cnt++] = i; } for (int j = 0; j < pr_cnt && pr[j] <= lp[i] && i * pr[j] < MAX; j++) { lp[i * pr[j]] = pr[j]; } } ll ans = 0; int k; scanf("%d", &k); while (k--) { ll n; scanf("%lld", &n); deque pf = fff(n); reverse(pf.begin(), pf.end()); ans += solve(n, pf); } printf("%lld\n", ans); return 0; }