#include using namespace std; #define max(a,b) ((a)>(b)?(a):(b)) long getGPF(long x) { for(int i=2; i<=x/i; i++) if(x%i==0) return max(i, getGPF(x/i)); return x; //x is prime!!! } long longestSequence(vector a) { // Return the length of the longest possible sequence of moves. long cnt = 0; for(auto x:a) { long cur_move = 0; long mul_cnt = 1; while(x > 1) { //Find largest prime factor long i = getGPF(x); x = x/i; cur_move += mul_cnt; mul_cnt = mul_cnt*i; //cout << x << " " << cur_move << " " << mul_cnt << endl; } cnt += cur_move + mul_cnt; //cout << cnt; } 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; }