N=int(input()) A=list(map(int,input().split())) X=[0]*(10**6+1) for a in A: X[a]=1 DP=[1]*(10**6+1) for i in range(1,10**6+1): if X[i]==1: for j in range(i+i,10**6+1,i): if X[j]==1: DP[j]=max(DP[i]+1,DP[j]) print(max(DP))