#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef complex Complex; #define fi first #define se second inline int getInt() { int res(0); char c = getchar(); while(c < '0') c = getchar(); while(c >= '0') { res = res * 10 + (c - '0'); c = getchar(); } return res; } inline int fastpo(int x, int n, int mod) { int res(1); while(n) { if(n & 1) { res = res * (LL)x % mod; } x = x * (LL) x % mod; n /= 2; } return res; } const int N = 300033; const int LOG = 20; const int mod = 1e9 + 7; const int inf = 1e9 + 7; const int T(1000000); int prime[T + 11], f[T + 11]; int main() { int np = 0; prime[0] = 0x7fffffff; fill(f + 2, f + 1 + T, true); for(int i(1); i <= T; i++) { if(f[i]) { prime[++np] = i; } for(int j = 1; j <= np && prime[j] *i <= T && i % prime[j - 1]; j++) { f[prime[j] * i] = false; } } int n; cin >> n; long long ans = 0; for(int i(0); i < n;i++) { long long x; cin >> x; long long cur = 1; ans += x; for(int i(np); i >= 1; i--) { while(x % prime[i] == 0) { ans += cur; cur *= prime[i]; x /= prime[i]; } } if(x > 1) ans++; } cout << ans << endl; }