#include #define REP(i, x, y) for (ll i = x; i <= y; i++) #define BIT(t) (1ll << t) #define PER(i, y, x) for (ll i = y; i >= x; i--) #define vll vector #define vvll vector> #define pll pair #define SIZE(v) ll(v.size()) #define UNIQUE(v) v.erase(unique(v.begin(), v.end()), v.end()); using namespace std; typedef long long ll; // ios::sync_with_stdio(false); // cin.tie(nullptr); int main(){ ll n; cin >> n; vll a(n+1); ll const MAX = 3e5 + 1; vll v(MAX, 0); REP(i,1,n){ cin >> a[i]; } REP(i,1,n){ ll t = a[i]; if(t == 1){ v[1] = 1; continue; } v[t] = max(v[t], v[1] + 1); for(ll i = 2;i * i<=t;i++){ if(t % i == 0){ ll j = t / i; v[t] = max({v[t], v[i] + 1, v[j] + 1}); } } } ll ans = 0; REP(i,1,MAX){ ans = max(ans, v[i]); } cout << ans << endl; }