from collections import * def div(n): if n <= 0: return [] S = set() i = 1 while i * i <= n: if n % i == 0: S.add(i) S.add(n // i) i += 1 return list(S) N = int(input()) A = list(map(int, input().split())) pre = defaultdict(lambda : -10) pre[1] = 0 for a in A: dp = defaultdict(lambda : -10) for d in div(a): dp[a] = max(dp[a], pre[d] + 1) for k, v in pre.items(): dp[k] = max(dp[k], v) dp, pre = pre, dp ans = 0 for k, v in pre.items(): ans = max(ans, v) print(ans)