#include using namespace std; #define ll long long #define pb push_back #define maxn 1000000 bool npr[maxn + 1]; vector prim; void prekom() { npr[0] = 1; npr[1] = 1; for(int i = 2; i <= 1000; i++) { if(npr[i]) { continue; } for(int j = i * i; j <= 1000000; j += i) { npr[j] = 1; } } } int main() { prekom(); for(int i = 2; i <= 1000000; i++) { if(!npr[i]) { prim.pb(i); } } ll has = 0; int idx, n; scanf("%d", &n); ll a, b, c; while(n--) { scanf("%lld", &a); c = a; for(ll x : prim) { while(!(c % x)) { c /= x; } } has += a; if(c > 1)prim.pb(c); b = 1; idx = prim.size() - 1; while(a > 1) { while(!(a % prim[idx])) { has += b; a /= prim[idx]; b *= prim[idx]; } idx--; } prim.pop_back(); } printf("%lld\n", has); }