#include using namespace std; vector vec[300000]; int main(){ int n; int a[300010]; cin >> n; for(int i = 0;i < n;i++) cin >> a[i]; for(int i = 1;i <= 300000;i++){ for(int j = i+i;j <= 300000;j+=i){ vec[j].push_back(i); } } int memo[300000]; int ans[300000] = {}; int aans = 0; for(int i = n-1;i >= 0;i--){ ans[i] = memo[a[i]] + 1; aans = max(aans, ans[i]); for(int j = 0;j < vec[a[i]].size();j++){ memo[vec[a[i]][j]] = max(memo[vec[a[i]][j]], ans[i]); } } cout << aans << endl; return 0; }