Z = 3 * 10**5 P = [[1] for _ in range(Z+1)] P[1] = [0] for i in range(2, Z+1): for j in range(i+i, Z+1, i): P[j].append(i) X = [0] * (Z+1) N = int(input()) A = list(map(int, input().split())) for a in A: t = max(X[i] for i in P[a]) X[a] = max(X[a], t + 1) print(max(X))