#define max(p,q)(p>q?p:q) a[100010],b[1000010],n,i,j; c(int*a,int*b){return*b-*a;} main(s){ scanf("%d",&n); for(;~scanf("%d",a+i);b[a[i++]]=1); qsort(a,n,4,c); for(i=0;i<1e6;i++)if(b[i])for(j=i;(j+=i)<=1e6;s=max(s,b[j]))if(b[j])b[j]=max(b[j],b[i]+1); n=!printf("%d",s); }