def divisor(n): ret = [] for i in range(1, int(n**0.5)+1): if n % i == 0: ret.append(i) if i*i != n: ret.append(n//i) return ret n = int(input()) a = list(map(int, input().split())) m = 3*10**5+1 DP = [0]*m for ai in a: tmp = 0 for bi in divisor(ai): if bi != ai: tmp = max(tmp, DP[bi]) DP[ai] = tmp+1 print(max(DP))