#include #include #include #include #include using namespace std; long long longestSequence(long long in){ long long div = 2; long long in2 = in; vector prime_fac; //Divide by 2 as many times as possible: while (in2 % 2 == 0){ in2 /= 2; prime_fac.push_back(2); } for (long long i = 3; i < pow(in2, .5); i += 2){ if (in2 % i == 0){ in2 /= i; prime_fac.push_back(i); } } if (in2 > 1) prime_fac.push_back(in2); sort(prime_fac.begin(), prime_fac.end(), [](long long lhs, long long rhs){return lhs > rhs;}); long long sum = 1; long long curr_pieces = 1; for (auto i:prime_fac){ curr_pieces *= i; sum += curr_pieces; } return sum; } int main() { int n; cin >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } /* Enter your code here. Print output to STDOUT */ long long sum = 0; for (auto i:a){ sum += longestSequence(i); } cout << sum << endl; return 0; }