N = int(input()) A = list(map(int, input().split())) Z = 3*10**5 D = [[] for _ in range(Z+1)] for i in range(1, Z+1): for j in range(i+i, Z+1, i): D[j].append(i) D[1].append(0) dp = [0] * (Z+1) for a in A: t = 0 for d in D[a]: t = max(t, dp[d]) dp[a] = max(dp[a], t + 1) ans = max(dp) print(ans)