#include #define REP(i,n) for(int i=0,i##_len=int(n);i>N; vector A(N); REP(i, N) cin >> A[i]; int MAX=*max_element(All(A)); vector dp(MAX+1); REP(i,N){ if(A[i]>1) dp[A[i]]=max(dp[A[i]],dp[1]+1); else dp[1]=1; for(int j=2;j*j<=A[i];++j){ if(A[i]%j==0){ dp[A[i]]=max({dp[A[i]],dp[j]+1,dp[A[i]/j]+1}); } } } // REP(i,MAX+1) cout<