#include using namespace std; typedef long long ll; int n; ll a; vector dvs; map M; ll res; ll Get(ll a) { if (a == 1) return 1; map ::iterator it = M.find(a); if (it == M.end()) { ll res = 0; for (int i = 0; i < dvs.size(); i++) if (dvs[i] > 1 && a % dvs[i] == 0) res = max(res, Get(a / dvs[i]) * dvs[i]); res++; M[a] = res; return res; } return it->second; } int main() { int n; cin >> n; while (n--) { cin >> a; dvs.clear(); for (ll i = 1; i * i <= a; i++) if (a % i == 0) { dvs.push_back(i); if (i * i < a) dvs.push_back(a / i); } res += Get(a); } cout << res << endl; return 0; }