n = int(raw_input()) l = map(int, raw_input().split()) l.sort() p = [0 for _ in range(l[-1])] m = 1 for x in l: c = 1 d = 1 while d * d <= x: if x % d == 0: c = max(c, p[d-1]+1) c = max(c, p[x/d-1]+1) d += 1 p[x-1] = c m = max(m,c) print m