//#include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define F first #define S second #define lb lower_bound #define ub upper_bound #define pb push_back #define pf push_front #define ppb pop_back #define mp make_pair #define al 0x3F3F3F3F #define sz(x) x.size() #define all(x) x.begin(), x.end() #define in insert #define ppf pop_front #define endl '\n' #define resize(v) v.resize(unique(all(v)) - v.begin()); #define x1 aza2 #define y1 aza3 typedef unsigned long long ull; typedef long long ll; typedef long double ld; typedef pair pii; typedef pair pll; typedef pair pil; typedef pair < ll, int > pli; typedef pair pdd; typedef pair pid; typedef pair pdi; typedef pair pld; typedef pair pdl; const int mod = (int)1e9 + 7; const int MAX_N = (int)2e5 + 123; const int N = 1e6 + 3; const int INF = al; const ll INFL = 3e18 + 1; const double pi = acos(-1.0); const double eps = 1e-9; const int dx[] = {0, -2, 2, -1, 1, -1, 1}; const int dy[] = {0, 0, 0, -2, -2, 2, 2}; ll q, V; inline ll get(ll x) { ll ans = 0; ll xx = x; map mp; for (ll i = 2; i * i <= x; i ++) { while (xx % i == 0) mp[i] ++, xx /= i; } if (xx != 1) mp[xx] ++; ll cur = 1; for (auto to : mp) { for (int j = 1; j <= to.S; j ++) { cur *= to.F; ans += (x / cur); } } ans += x; return ans; } inline void boost() { ios_base :: sync_with_stdio(NULL); cin.tie(NULL), cout.tie(NULL); } inline void Solve() { boost(); ll q; cin >> q; ll res = 0; while (q --) { cin >> V; res += get(V); } cout << res; } int main () { // freopen("differ.in", "r", stdin); // freopen("differ.out", "w", stdout); int tt = 1; while (tt--) { Solve(); } }