#include #include #include #include #include #include using namespace std; int longestSequence (unordered_map& m, int n) { if (!m.count(n)) { int res = 0; for (int i = 2; i <= n; i++) { if (n % i == 0) { int k = n / i; res = max(res, 1 + i * longestSequence(m, k)); } } m[n] = res; } return m[n]; } int main() { int n; cin >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } sort(a.begin(), a.end(), greater()); /* Enter your code here. Print output to STDOUT */ unordered_map m; m[1] = 1; int res = 0; for (int c : a) { res += longestSequence (m, c); } cout << res << endl; return 0; }