/* Arunava Chakraborty [ @iArunava ] */ #include using namespace std; #define ll long long #define vi vector < int > #define vvi vector < vector < int > > #define vl vector < ll > #define vll vector < vector < ll > > #define MODt97 1000000007 #define MODt99 1000000009 #define te5 100000 #define te6 1000000 #define te7 10000000 #define te8 100000000 #define te9 1000000000 #define fastio ios_base::sync_with_stdio (0); cin.tie (NULL); map < ll, ll > maxlength; ll getmaxlength(ll num) { if (maxlength[num] != 0) return maxlength[num]; int flag = 0, i = 0; ll moves = 0; if (!(num&1)) { flag = 1; moves = 1 + (2 * getmaxlength(num/2)); } for (i = 3; i <= sqrt(num)+1; i+=2) { if (num%i == 0) { flag = 1; moves = max (moves, 1 + (i * getmaxlength(num/i))); moves = max (moves, 1 + ((num/i) * getmaxlength(num/(num/i)))); } } if (!flag) { //prime moves = num+1; } maxlength[num] = moves; return moves; } int main () { fastio; maxlength[1] = 1; maxlength[2] = 3; maxlength[3] = 4; maxlength[4] = 7; maxlength[5] = 6; maxlength[6] = 10; maxlength[7] = 8; maxlength[8] = 15; maxlength[9] = 13; ll n = 0, i = 0, mmov = 0, ai = 0; cin >> n; for (i = 0; i < n; ++i) { cin >> ai; mmov += getmaxlength(ai); } cout << mmov << "\n"; return 0; }