#include using namespace std; typedef unordered_map dpMap; dpMap dp; long smallest_divisor(long a){ if(a%2 ==0) return 2; else if(a%3 ==0) return 3; else{ for (int i = 5; i <= sqrt(a); i+=2){ if(a%i==0) return i; } return a; } } long longestSequence(long a) { if (dp.count(a) <= 0) { dp[a] = longestSequence(a/smallest_divisor(a)) + a; } return dp[a]; } int main() { int n; cin >> n; long ans = 0; dp[1] = 1; for (int i = 0; i < n; i++) { long a; cin >> a; ans += longestSequence(a); } cout << ans << endl; return 0; }