#include #define be(v) (v).begin(),(v).end() #define pb(q) push_back(q) #define rep(i, n) for(int i=0;i> n; vector a(n); vector dp(100001, 0); rep(i, n) cin >> a[i]; rep(i, n) { ll m = 0; for(ll j = 1; j * j <= a[i]; j ++) { if(a[i] % j == 0) { m = max(m, dp[j] + 1); m = max(m, dp[a[i]/j] + 1); } } dp[a[i]] = m; } ll ans = 0; all(e, dp) ans = max(ans, e); cout << ans << endl; return 0; }