# longest sequence # dp import sys input=sys.stdin.readline N = int(input()) A = list(map(int, input().split())) A.sort() dp = [-10**20 for i in range(10**6+1)] B=max(A) # dp[X]=Xで終わることがあるならば、その最大の長さ for x in A: dp[x] = max(dp[x], 1) # とりあえず、1で更新できる。 for j in range(2, 10**6+10): if x*j > B: break dp[x*j] = max(dp[x*j], dp[x]+1) ans = 0 for x in A: ans = max(ans, dp[x]) print(ans)