#include #include #include #include #include #include #include #include #include #include #include #include #define vll vector #define vvvl vector #define vvl vector> #define VV(a, b, c, d) vector>(a, vector(b, c)) #define VVV(a, b, c, d) vector(a, vvl(b, vll (c, d))); #define re(c, b) for(ll c=0;c> n; vll idx(1000001, -1), a(n); get(a); sort(all(a)); re(i, n) idx[a[i]] = i; ll ans = 0; vll dist(n, 1); re(i, n){ for(ll j=2*a[i];j<=1000000;j+=a[i]){ if(i>idx[j]) continue; dist[idx[j]] = max(dist[idx[j]], dist[i]+1); } ans = max(ans, dist[i]); } std::cout << ans << '\n'; }