# dpでTLEした # エラトステネスのようにやるか N = int(input()) A = list(map(int, input().split())) from collections import defaultdict A_position = defaultdict(list) for i in range(N): A_position[A[i]].append(i) dp = [1]*N maxA = max(A) for i in range(N): current = dp[i] for q in range(A[i], maxA+1, A[i]): for r in A_position[q]: if r > i: dp[r] = max(dp[r], current+1) #print(dp) ans = max(dp) print(ans)