#include using namespace std; #define _for(i, a, b) for(int i = a, IM = b; i <= IM; i ++) #define _rep(i, a, b) for(int i = a, IM = b; i >= IM; i --) #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); #define PCS(a) cout<; using ull = unsigned long long; using int3 = array; const double eps = 1e-10; const ll INF = 1.1e18; const int mod = 1e4 + 7.5, inf = 1.01e9; const int N = 5e5 + 9, M = 1e4 + 9, Q = 1e6 + 9; vector ve[N]; int a[N]; int f[N]; void solved() { int n; cin >> n; _for(i, 1, n) cin >> a[i]; int m = 1e5 + 0.5; _for(i, 1, m) for(int j = i; j <= m; j += i) ve[j].push_back(i); _for(i, 1, m) ve[i].pop_back(); _for(i, 1, n) { int x = a[i]; int pre = f[x]; for(int y: ve[x]) f[x] = max(f[x], f[y] + 1); f[x] = max(f[x], pre + 1); // _for(i, 1, 5) cout << f[i] << ' '; cout << endl; } int ans = 0; _for(i, 1, m) ans = max(ans, f[i]); cout << ans; return ; } signed main() { IOS PCS(6) // int ttx; cin >> ttx; _for(i, 1, ttx) solved(); return 0; } /* */