# longest sequence # dp N = int(input()) A = list(map(int, input().split())) A.sort() dp = [-10**20 for i in range(10**6+1)] # 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 > max(A): break dp[x*j] = max(dp[x*j], dp[x]+1) ans = 0 for x in A: ans = max(ans, dp[x]) print(ans)