#include #define REP(i,n) for(int i=0,i##_len=int(n);i>n; int dp[100001] = {}; REP(i, n) { int a;cin>>a; int mx = 0; for(int m=1; m <= sqrt(a) + 1;m++){ if(a%m==0) { mx = max(mx, dp[m]); mx = max(mx, dp[a/m]); } } dp[a] = mx + 1; } cout << *std::max_element(dp, dp+100001) << endl; }