#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define rep(i,n) repl(i,0,n) #define mp(a,b) make_pair(a,b) #define pb(a) push_back(a) #define all(x) (x).begin(),(x).end() #define dbg(x) cout<<#x"="<>n; int dp[MAX]; fill(dp, dp+MAX, -1); int mx=0; rep(i,n){ int d; scanf("%d", &d); dp[d]=1; mx = max(d,mx); } rep(i,mx){ if(dp[i]==-1) continue; for(int j=i*2; j<=mx; j+=i){ if(dp[j]!=-1) dp[j]=max(dp[j], dp[i]+1); } } int res=0; rep(i,mx+1) res = max(res, dp[i]); cout<