#include using namespace std; vector primelist; bool isprime[1200000]; void sieve(long n) { for(int i = 2; i < n; i++) { if(!isprime[i]) { primelist.push_back(i); for(int j = 2*i; j < n; j++) isprime[j] = true; } } } long longestSequence(vector a) { // Return the length of the longest possible sequence of moves. long answer = 0; for(int i = 0; i < a.size(); i++) { if(a[i] == 1) { answer += 1; continue; } int last = 0; long curr = a[i]; long temp = curr; while(curr != 1) { for(int j = last; j < primelist.size(); j++) { if(curr % primelist[j] == 0) { temp += curr / primelist[j]; last = j; curr = curr / primelist[j]; break; } if(j == primelist.size() - 1) { temp += 1; curr = 1; } } } answer += temp; } return answer; } int main() { sieve(1100000); int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long result = longestSequence(a); cout << result << endl; return 0; }