n=int(input()) A=list(map(int,input().split())) B=[0]+[0]+[-10**5]*10**5 for i in range(n): if A[i]!=1: B[A[i]]+=1 B[A[i]]=max(B[1]+1,B[A[i]]) for q in range(2,320): if q**2>A[i]: break if A[i]%q==0: B[A[i]]=max(B[A[i]],B[q]+1) B[A[i]]=max(B[A[i]],B[A[i]//q]+1) ans=max(B) #print(B) print(ans)