N = int(input()) x = sorted([int(i) for i in input().split()]) dp = [0 for i in range(max(x) + 1)] a = [False for i in range(max(x) + 1)] for i in range(N): a[x[i]] = True for i in range(N): dp[x[i]] = max(dp[x[i]],1) for j in range(2,max(x) + 1): if x[i] * j >= max(x): break if a[x[i] * j]: dp[x[i] * j] = max(dp[x[i] * j],dp[x[i]] + 1) print(max(dp))