N = int(input()) x = list(map(int,input().split())) M = max(x) + 1 dp = [0] * M for i in x: dp[i] = 1 for i in range(M): if dp[i] == 0: continue for j in range(i + i,M,i): if dp[j] == 0: continue dp[j] = max(dp[j],dp[i] + 1) print (max(dp))