#include using namespace std; int main(int argc, char *argv[]) { int n; cin >> n; long long ans = 0; vector a(n), div; for (int i = 0; i < n; ++i) { cin >> a[i]; for (long long j = 1; j * j <= a[i]; j++) { if (a[i] % j == 0) { div.push_back(j); div.push_back(a[i] / j); } } } sort(div.begin(), div.end()); div.erase(unique(div.begin(), div.end()), div.end()); vector f(div.size(), 0); f[0] = 1; for (int i = 1; i < div.size(); i++) { f[i] = 1; for (int j = 0; j < i; j++) { if (div[i] % div[j] == 0) { f[i] = max(f[i], f[j] * (div[i] / div[j]) + 1); } } } for (int i = 0; i < n; ++i) { ans += f[lower_bound(div.begin(), div.end(), a[i]) - div.begin()]; } cout << ans << endl; return 0; }