def Divisors(N): divisors=[] for i in range(1,N+1): if i**2>=N: break elif N%i==0: divisors.append(i) if i**2==N: divisors+=[i]+[N//i for i in divisors[::-1]] else: divisors+=[N//i for i in divisors[::-1]] return divisors N=int(input()) A=list(map(int,input().split())) max_A=max(A) dp=[-1]*(max_A+1) dp[0]=0 for a in A: for d in Divisors(a)+[0]: if a==d: continue dp[a]=max(dp[a],dp[d]+1) ans=max(dp) print(ans)