#include using namespace std; vectorprimes(1000001), red(1000001); long long longestSequence(vector a) { long long ans=0,tmp; int j=0; for(int i=0;i1){ if(red[j]){ if(tmp%red[j]){ j++; } else{ ans+=tmp; tmp/=red[j]; } } else{ ans+=tmp; tmp=1; } } ans+=tmp; } } return ans; // Return the length of the longest possible sequence of moves. } int main() { int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } for (int i = 2; i <= 1000000; i++) { if (!primes[i]) { for (int j = i << 1; j <= 1000000; j += i) primes[j] = 1; } } int j = 0; for (int i = 2; i <= 1000000; i++) { if (!primes[i]) { red[j] = i; j++; } } long long result = longestSequence(a); cout << result << endl; return 0; }