dp = [0]*(10**6+1) N = int(raw_input()) MAX = 0 for i in map(int,raw_input().split()): if i > MAX: MAX = i dp[i] = 1 for i in xrange(1,MAX): if dp[i] == 0: continue for j in xrange(i*2,MAX+1,i): if dp[j] == 0: continue if dp[i] + 1 > dp[j]: dp[j] = dp[i] + 1 print max(dp)