#include using namespace std; typedef vector vl; typedef vector vvl; vvl getPrimeFactors(long num){ vvl primeFactors; for(long factor = 2; factor <= sqrt(num); factor++){ long factorPower = 0; while(num%factor == 0){ num /= factor; factorPower++; } if (factorPower > 0) primeFactors.push_back({factor, factorPower}); } if (num != 1) primeFactors.push_back({num, 1}); return primeFactors; } long noOfMoves(long num){ vvl primeFactors = getPrimeFactors(num); long multiple = 1, result = 1; for(long i = primeFactors.size()-1; i >= 0; i--){ long factor = primeFactors[i][0], factorPower = primeFactors[i][1]; for(long j = 0; j < factorPower; j++){ multiple *= factor; result += multiple; } } return result; } long longestSequence(vector a) { long result = 0; for(long i = 0; i < a.size(); i++){ result += noOfMoves(a[i]); } return result; } 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; }