#include #define usl unsigned long using namespace std; bool is_prime(usl num){ if(num == 1) return false; for(int i = 2; i <= sqrt(num); i++){ if(num % i == 0) return false; } return true; } usl break_down(usl num){ usl sum = num; usl last_i = 1, i =2, c=2; if(num%2==1) { if(is_prime(num)) return num+1; i=3; } while(i < num+1){ if(num%i == 0 && i % last_i == 0){ if(is_prime(num/i)){ sum = sum + (num/i) + 1; break; } // cout<1) i = i * c; if(num%(i*c)!=0) c++; } // cout< a) { usl main_sum = 0; for(int i = 0; i < a.size(); i++) main_sum = main_sum + break_down(a[i]); return main_sum; } int main() { int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } usl result = longestSequence(a); cout << result << endl; return 0; }