#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define TRACE(x) cerr << #x << " " << x << endl #define FOR(i, a, b) for (int i = (a); i < int(b); ++i) #define REP(i, n) FOR(i, 0, n) #define _ << " " << #define fst first #define snd second typedef long long llint; typedef pair pii; const int B = 27397, MOD = 1e9 + 7; const int B1 = 33941, MOD1 = 1e9 + 9; int n; unordered_map memo; llint dp(llint x) { if (memo.find(x) != memo.end()) return memo[x]; if (x == 1) return 1; llint ret = 0; for (int i = 2; (llint) i * i <= x; ++i) { if (x % i != 0) continue; return memo[x] = x + dp(x/i); } return memo[x] = x + 1; } int main(void) { scanf("%d", &n); llint sol = 0; for (int i = 0; i < n; ++i) { llint a; scanf("%lld", &a); sol += dp(a); } printf("%lld\n", sol); return 0; }