#include using namespace std; int n; typedef long long cc; bool pp[1000006]; bool pr(cc x) { for (int i = 2; i <= sqrt(x); i++) if (x % i == 0) return false; return true; } cc res = 0; vector p; cc cal(cc x) { if (x == 1) return 1; if (pr(x)) return 1; for (auto pri: p) if (x % pri == 0) return x + cal(x / pri) * pri; return 0; } int main() { for (int i = 2; i <= 1000000; i++) if (!pp[i]) { p.push_back(i); for (int j = i + i; j <= 1000000; j += i) pp[j] = true; } reverse(p.begin(), p.end()); cin >> n; while (n--) { cc x; cin >> x; cc pre = 1; cc sub = 0; cc xxx = x; //sub = cal(x); while (x != 1) { cc div; if (pr(x)) div = x; else { for (int i = 0; i < p.size(); i++) { cc pri = p[i]; if (x % pri == 0) { div = pri; break; } } } //cout << x << " " << pre << " " << div << "\n"; sub += pre; pre *= div; x /= div; } sub += xxx; res += sub; } cout << res; return 0; }