#include using namespace std; class mul{ public: long a; long b; mul(long _a, long _b):a(_a),b(_b){} }; vector getMuls(long a){ vector retval; for(int i = 2; i < a; i++){ if(a % i == 0){ retval.push_back(mul(i, a / i)); } } return retval; } long getCount(long a, long lastcount, long times){ long retval = 0; long count = 1; if(a == 1){ retval = lastcount ; } else{ vector mulVec = getMuls(a); if(mulVec.size() != 0) { long max = -1; for(long i = 0; i < mulVec.size(); i++){ long x = mulVec[i].a; long y = mulVec[i].b; long nowCount = lastcount + y * times; //cout<<"x "< a) { long retval = 0; for(long i = 0; i < a.size(); i++){ retval += getCount(a[i], 1, 1); } return retval; // 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]; } long result = longestSequence(a); cout << result << endl; return 0; }