N = int(input()) A = list(map(int,input().split())) C = 10 ** 5 + 5 div = [[1] for _ in range(C)] for i in range(2,C): for j in range(i + i,C,i): div[j].append(i) d = dict() #d[1] = 0 for a in A: if a not in d: d[a] = 0 else: d[a] += 1 for u in div[a]: if u in d: d[a] = max(d[a],d[u] + 1) print(max(d.values())) #print(d)