#include using namespace std; int main() { int N; cin >> N; int A[100010]; for (int i = 0; i < N; i ++) { cin >> A[i]; } int lst[100010]; for (auto& a : lst) { a = -1; } int dp[100010]; dp[0] = 1; lst[A[0]] = 0; for (int i = 1; i < N; i ++) { dp[i] = 0; for (int a = 1; a * a <= A[i]; a ++) { if (A[i] % a == 0) { if (lst[a] >= 0) { dp[i] = max(dp[i], dp[lst[a]]); } if (lst[A[i] / a] >= 0) { dp[i] = max(dp[i], dp[lst[A[i] / a]]); } } } dp[i] += 1; lst[A[i]] = i; } int ans = 0; for (int i = 0; i < N; i ++) { ans = max(ans, dp[i]); } cout << ans << endl; }