#include using namespace std; map dp; /*inline bool ok(long long x) { int d = 2; if(x == 1) return 0; if(x == 2) return 1; while(d * d <= x && x % d > 0) { d++; } return x % d > 0; } */ inline long long check(long long x) { int i; if(x == 1) return dp[1] = 1; if(dp[x] > 0) return dp[x]; int d = 2; long long aux = x, mx = 0; while(1LL * d * d <= x) { int e = 0; while(x % d == 0) { x /= d; e++; } if(e > 0) { mx = max(mx, (long long) d); } d++; } if(x > 1) mx = max(mx, x); return dp[aux] = 1LL * check(aux / mx) * mx + 1; } int main() { int n; cin >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } long long ans = 0; for(int i = 0; i < n; i++) { ans += check(a[i]); } cout << ans; return 0; }