N = int(input()) A = list(map(int,input().split())) C = 3 * 10 ** 5 + 1 dat = [[] for _ in range(C)] for i in range(1,C): for j in range(i * 2,C,i): dat[j].append(i) dp = [0] * C for a in A: dp[a] = max(dp[a],1) _max = 0 for v in dat[a]: if dp[v] + 1 > _max: _max = dp[v] + 1 dp[a] = max(dp[a],_max) print(max(dp))