#include #define LL long long int using namespace std; const LL INF = 1e12 + 9; const int PRIME = 1e6; int n; bool used[PRIME+1]; LL x, maxSplits; vectorprime; vectordiv1; int main(){ //freopen ("input.txt", "r", stdin); //freopen ("output.txt", "w", stdout); for (int i = 0; i <= PRIME; i++) used[i] = true; used[1] = false; for (int i = 2; i <= PRIME; i++){ if (used[i]) prime.push_back(i); if (i * 1ll * i <= PRIME) for (int j = i*i; j <= PRIME; j += i) used[j] = false; } scanf ("%d", &n); maxSplits = 0; for (int i = 0; i < n; i++){ scanf ("%lld", &x); div1.clear(); int ind = 0; while (x > 1 && ind < prime.size()){ while(x%prime[ind] == 0 && x > 1){ x /= prime[ind]; div1.push_back(prime[ind]); } ind++; } if (x > 1) div1.push_back(x); //for (int j = 0; j < div1.size(); j++) // printf ("%lld\n", div1[j]); LL curSplit = 0; LL multOnInterval = 1; for (int j = div1.size() - 1; j >= 0; j--){ multOnInterval *= div1[j]; curSplit += multOnInterval; } maxSplits += curSplit + 1; } printf ("%lld\n", maxSplits); return 0; }