#include #define x first #define y second using namespace std; pair < long long, int > primes[50]; int k; long long findPrimes( long long x ) { int p = 2; k = 0; while (1LL * p * p <= x) { if (x % p == 0) { primes[ k ].first = p; while (x % p == 0) { primes[ k ].second++; x /= p; } k++; } p++; } if (x != 1) primes[ k++ ] = { x, 1 }; long long e = 1, sum = 1; for (int i = k-1; i >= 0; i--) { while (primes[ i ].second) { e *= primes[ i ].first; primes[ i ].second--; sum += e; } } return sum; } int main() { //freopen( "input", "r", stdin ); //freopen( "output", "w", stdout); int n; long long x, answer = 0; cin >> n; while (n--) { cin >> x; answer += findPrimes( x ); } cout << answer; return 0; }