#include #include #include #include #include using namespace std; vector primes; bool f[100000007]; void era() { for (long long i = 2; i <= 10000000; ++i) { if (!f[i]) { for (long long j = i * i; j <= 100000000; j += i) { f[j] = true; } } } for (long long i = 2; i <= 10000000; ++i) { if (!f[i]) { primes.push_back(i); } } } vector > anal(long long x) { int tmp; vector > ret; for (int i = 0; i < primes.size(); ++i) { tmp = 0; while (!(x % primes[i])) { ++tmp; x /= primes[i]; } if (tmp) { ret.push_back(make_pair(primes[i], tmp)); } if (x == 1) { break; } } if (x > 1) { ret.push_back(make_pair(x, 1ll)); } sort(ret.begin(), ret.end(), greater >()); return ret; } long long cal(vector a, int t) { if (t >= a.size()) { return 1; } return (1 + a[t] * cal(a, ++t)); } long long sol(long long x) { vector tmp; vector > a = anal(x); for (int i = 0; i < a.size(); ++i) { for (int j = 1; j <= a[i].second; ++j) { tmp.push_back(a[i].first); } } return cal(tmp, 0); } int main() { int n; cin >> n; long long re = 0; era(); vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; re += sol(a[i]); } cout << re << endl; /* Enter your code here. Print output to STDOUT */ return 0; }