import sys input = sys.stdin.buffer.readline N = int(input()) A = tuple(map(int, input().split())) MAX = max(A) INF = 100 divisors = [[] for _ in range(MAX + 1)] for i in range(1, MAX + 1): for j in range(i * 2, MAX + 1, i): divisors[j].append(i) dp = [-INF] * (MAX + 1) for a in A: dp[a] = 1 for x in divisors[a]: dp[a] = max(dp[a], dp[x] + 1) print(max(dp))