#include using namespace std; bool isprime(long x) { if(x == 2) return 1; if(x == 1 || x % 2 == 0) return 0; for( long i = 3 ; i*i <= x; i += 2) if(x % i == 0) return 0; return 1; } long A[80000]; bool h[1000006]; int K; void asal() { int N(1000000); for(int i = 2 ; i <= N ; i++) { if(!h[i]) { A[++K] = i; for( int j = i+i; j <= N ; j += i) h[j] = 1; } } } long f(long x) { if(x == 1) return 1; if(isprime(x)) return x + 1; long ret(2); for(int i = 1; i <= K ; i++) { if(A[i]*A[i] > x) break; if(x % A[i] == 0) { ret = A[i]; if(x/A[i] <= 1000000) { if(!h[x/A[i]]) ret = max ( ret, x/A[i] ); } else { if(isprime(x/A[i])) ret = max( ret , x/A[i]); } } } return 1 + ret *f(x/ret); } int main() { int n; long result(0); cin >> n; asal(); vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; result += f(a[a_i]); } //cout << A[K] << endl; cout << result << endl; return 0; }