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