#include using namespace std; bool notP[1000005]; int prime[100005], tot = 0; void getprime() { int n = 1000000; for (int i = 2; i <= n; ++i) { if (!notP[i]) prime[tot++] = i; for (int j = 0; j < tot && prime[j] * i <= n; ++j) { notP[prime[j] * i] = true; if (i % prime[j] == 0) break; } } } long long cal(long long n) { vector P; for (int i = 0; i < tot; ++i) { while (n % prime[i] == 0) { P.push_back(prime[i]); n /= prime[i]; } } if (n != 1) P.push_back(n); reverse(P.begin(), P.end()); long long ans = 0, cur = 1; for (auto x : P) { ans += cur; cur *= x; } return ans + cur; } int main() { getprime(); int n; scanf("%d", &n); long long ans = 0; for (int i = 0; i < n; ++i) { long long x; cin >> x; ans += cal(x); } cout << ans << endl; return 0; }