#include #define REP(i,n,N) for(int i=(n);i<(int)N;i++) #define p(s) cout<<(s)<>N; int x[100010]; REP(i,0,N) cin>>x[i]; sort(x,x+N); REP(i,0,N) dp[x[i]]=1; REP(i,0,N){ for(int j=x[i]*2;j<=x[N-1];j+=x[i]){ if(dp[j]==0) continue; dp[j] = max(dp[j],dp[x[i]]+1); } } p(*max_element(dp,dp+x[N-1]+1)); return 0; }