#include using namespace std; const int MAX = 100000; int main(){ int N; cin >> N; vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } vector> F(MAX + 1); for (int i = 1; i <= MAX; i++){ for (int j = i; j <= MAX; j += i){ F[j].push_back(i); } } vector dp(MAX + 1, 0); int ans = 0; for (int i = 0; i < N; i++){ int tmp = 0; for (int j : F[A[i]]){ tmp = max(tmp, dp[j] + 1); } dp[A[i]] = tmp; ans = max(ans, tmp); } cout << ans << endl; }