import bisect import collections N = int(input()) A = list(map(int,input().split())) CA = collections.Counter(A) MA = max(A) A.sort() for a in A: i=2 while MA>=a*i: if CA[a*i]>0: CA[a*i]=max(CA[a*i],CA[a]+1) i+=1 print(max(CA.values()))