#include #include #include #include #include #include using namespace std; long long func(long long n, long long score, map &cache) { if (n == 1) {return 1;} if (cache.find(n) == cache.end()) { long long maxScore = 0; for (int i = 2; i <= n; ++i) { if (n % i == 0) { maxScore = max(maxScore, func(n / i, 0, cache) * i); } } long long finalScore = maxScore + score + 1; cache[n] = finalScore; return finalScore; } else { return cache[n]; } } int main() { int n; cin >> n; long long result = 0; map cache; for (int i = 0; i < n; i++) { long long x; cin >> x; result += func(x, 0, cache); } cout << result << '\n'; return 0; }