#include using namespace std; long isqrt(long n) { if (n < 2) return n; long small = isqrt(n >> 2) << 1; long large = small + 1; if (large*large > n) return small; return large; } long longestSequence(vector & a) { // Return the length of the longest possible sequence of moves. long result = 0; for (long n : a) { result += 1; if (n == 1) continue; result += n; long i = 2; long upper = isqrt(n); while (i <= upper) { if (n % i == 0) { n /= i; result += n; upper = isqrt(n); } else { ++i; } } } return result; } int main() { 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; }