#include using namespace std; const int N = 1000010; typedef long long ll; vector primes; bool is_prime[N]; void make_prime() { memset(is_prime, true, sizeof(is_prime)); for (int i = 2; i < N; ++i) if (is_prime[i]) { primes.push_back(i); for (int j = i + i; j < N; j += i) is_prime[j] = false; } } ll process(ll m) { vector vec; for (int i = 0; i < primes.size() && m > 1; ++i) { int p = primes[i]; while (m % p == 0) { vec.push_back(p); m /= p; } } if (m > 1) vec.push_back(m); reverse(vec.begin(), vec.end()); ll res = 0, tem = 1; for (int i = 0; i < vec.size(); ++i) { res += tem; tem *= vec[i]; } res += tem; return res; } int main() { int n; cin >> n; make_prime(); ll ans = 0; for (int i = 0; i < n; ++i) { ll x; cin >> x; ans += process(x); } cout << ans << endl; return 0; }