#include using namespace std; long A[100001]; void compute() { A[1] = 1; long i, j; int flag; for(i = 2; i < 100001; i++) { for(j = 2; j <= sqrt(i); j++) if(i % j == 0) A[i] = max(A[i] , max(1 + (j * A[i / j]) , 1 + i / j * A[j])); A[i] = max(A[i] , i + 1); } } long longestSequence(vector a) { // Return the length of the longest possible sequence of moves. compute(); long sum = 0; for(long j = 0; j < a.size(); j++) { if(a[j] < 1000001) sum += A[a[j]]; } return sum; } 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; }