#include #include #include #include #include using namespace std; // A function to print all prime factors of a given number n vector prime_factors(int64_t n) { vector result; // Print the number of 2s that divide n while (n%2 == 0) { result.push_back(2); n = n/2; } // n must be odd at this point. So we can skip // one element (Note i = i +2) for (int64_t i = 3; i <= sqrt(n); i = i+2) { // While i divides n, print i and divide n while (n%i == 0) { result.push_back(i); n = n/i; } } // This condition is to handle the case when n // is a prime number greater than 2 if (n > 2) { result.push_back(n); } return result; } int64_t moves(int64_t n) { if (n == 1) return 1; else if (n == 2) return 3; vector factors = prime_factors(n); /* for (int64_t i : factors) { cout << i << ' '; } cout << endl; */ int64_t largest_factor = factors[factors.size() - 1]; return 1 + largest_factor * moves(n / largest_factor); } int main() { int n; cin >> n; vector a(n); for (int64_t& i : a) { cin >> i; } int64_t total = 0; for (int64_t i : a) { total += moves(i); } cout << total << endl; return 0; }