#include using namespace std; const int milion = 1000100; int prim[79000]; bool c[milion + 1]; long longestSequence(vector a) { // Return the length of the longest possible sequence of moves. for (int i = 2; i * i <= milion; i++) if (c[i] == 0) for (int j = i * i; j <= milion; j += i) c[j] = 1; for (int i = 2; i <= milion; i++) if (c[i] == 0) prim[++prim[0]] = i; long cnt = 0; for (auto &t : a) { long x = t, y = 1, ans = 0; for (int p = prim[0]; p > 0; p--) { while (x % prim[p] == 0) { ans += y; y *= prim[p]; x /= prim[p]; } } if (x != 1) { ans = 1 + ans * x; y *= x; x /= x; } ans += y; cnt += ans; } return cnt; } 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; }