n = int(input()) A = list(map(int, input().split())) def divisors(n): L, R = [], [] i = 1 while i * i <= n: if n % i == 0: L.append(i) if n // i != i: R.append(n // i) i += 1 return L + R[::-1] DP = [0 for _ in range(max(A) + 1)] for i in range(n): a = A[i] res = 0 for d in divisors(a): res = max(res, DP[d]) DP[a] = res + 1 print(max(DP))