#include using namespace std; long long factor_num( long long x ) { long long res = 0; long long max_factor = sqrt( x ); long long factor = 2; vector< long long > factors; while ( x > 1 && factor<= max_factor ) { while ( x % factor == 0 ) { x /= factor; factors.push_back( factor ); } factor++; } if ( x > 1 ) { factors.push_back( x ); } if ( factors.size() == 1 ) { res = 1; } else { long long id = factors.size() - 1; long long cur_mult = 1; while ( id >= 0 ) { res += cur_mult; //cout << factors[ id ] << endl; cur_mult *= factors[ id ]; id--; } } return res; } long long longestSequence(vector a) { // Return the length of the longest possible sequence of moves. long long res = 0; for ( size_t i = 0; i < a.size(); ++i ) { res += a[ i ] + factor_num( a[ i ] ); } return res; } 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; }