#include #define eb emplace_back #define pb push_back #define mp make_pair #define fi first #define se second #define INF 0x3f3f3f3f using namespace std; typedef long long ll; typedef pair pii; typedef vector vi; const int N = 220; #include using namespace std; map dp; vector dividers; ll solve (ll pedaco) { if (pedaco == 1) return 1; if (dp.count(pedaco)) return dp[pedaco]; ll ans = 0; for (auto d : dividers) { if (pedaco % d or pedaco == d) continue; ans = max(ans, solve(d) * (pedaco/d) + 1); } return dp[pedaco] = ans; } int main() { int n; cin >> n; vector a(n); ll ans = 0; for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; dividers.clear(); if (dp.count(a[a_i])) { ans += dp[a[a_i]]; continue; } for (int p = 1; ll(p) * p <= a[a_i]; p++) { if (a[a_i] % p) continue; dividers.pb(p); if (p == a[a_i]/p) continue; dividers.pb(a[a_i] / p); } ans += solve(a[a_i]); } cout << ans << endl; return 0; }