import sys sys.setrecursionlimit(5*10**5) input = sys.stdin.readline from collections import defaultdict, deque, Counter from heapq import heappop, heappush from bisect import bisect_left, bisect_right from math import gcd n = int(input()) a = list(map(int,input().split())) d = defaultdict(int) def fact(n): l = set() for i in range(1,int(pow(n,0.5))+1): if n % i == 0: l.add(i) l.add(n//i) return l for i in range(n): mx = 0 for j in fact(a[i]): mx = max(mx, d[j]) d[a[i]] = mx + 1 print(max(d.values()))