#include #include #define pb push_back #define pf push_front #define pp pop_back #define sz(a) (int)(a.size()) #define mp make_pair #define F first #define S second #define next _next #define prev _prev #define left _left #define right _right #define y1 _y1 #define all(x) x.begin(), x.end() using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair pii; typedef pair pll; const int N = (int)1e6 + 123; const ll INF = (ll)1e18 + 123; const int inf = (int)1e9 + 123; const int MOD = (int)1e9 + 7; void megaRandom() { unsigned int FOR; asm("rdtsc" : "=A"(FOR)); srand(FOR); } int n; ll a[N], sum; int main() { megaRandom(); cin >> n; vector v; for(int i = 1; i <= n; i ++) { cin >> a[i]; v.clear(); ll x = a[i]; for(ll j = 2; 1ll * j * j <= x; j ++) { if(x % j == 0) { while(x % j == 0) v.pb(j), x /= j; } } if(x > 1) v.pb(x); sort(all(v)); ll res = 1, ans = 0; for(int i = sz(v) - 1; i >= 0; i --) { //cout << "res: " << res << " v[i]: " << v[i] << "\n"; ans += res; res *= v[i]; } //cout << res << "\n"; ans += res; sum += ans; } cout << sum; return 0; }