#include using namespace std; long longestSequence(vector a) { // sounds like a job for dynamic programming! long M = *max_element(a.begin(), a.end()); vector R(M + 1); R[1] = 1; for (long i = 2; i <= M; i++) { long current_max = 0; long j = 1; while (j <= i) { if (i % j == 0) { current_max = max(current_max, i/j * R[j] + 1); } j++; } R[i] = current_max; // cout << i << ": " << current_max << endl; } long r = 0; for (int i = 0; i < a.size(); i++) { r += R[a[i]]; } return r; return 0; } 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; }