#include <bits/stdc++.h>   using namespace std;   long long int const mod = 1e9 + 7;   long long int power(long long int x, long long int y, long long int p) {     long long int res = 1;     x = x % p;     while (y > 0) {       if (y & 1) res = (res * x) % p;       y = y >> 1;       x = (x * x) % p;     }     return res;   }   long long int MIN(long long int a, long long int b) {     if (a < b) return a;     return b;   }   long long int MAX(long long int a, long long int b) {     if (a > b) return a;     return b;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     bool p[1000001];     memset(p, true, sizeof p);     p[0] = p[1] = false;     p[2] = true;     for (int i = 2; i * i <= 1000001; i++) {       if (p[i]) {         for (int j = i * i; j <= 1000001; j += i) {           p[j] = false;         }       }     }     vector<int> pp;     for (int i = 2; i <= 1000001; i++) {       if (p[i]) pp.push_back(i);     }     int t;     cin >> t;     while (t--) {       int n;       cin >> n;       long long int a[n + 1];       for (int i = 0; i < n; i++) cin >> a[i + 1];       int dp[n + 1], ans = 1;       dp[1] = 1;       for (int i = 2; i <= n; i++) {         dp[i] = 1;         for (int j = 1; j * j <= i; j++) {           if (i % j == 0) {             if (a[i] > a[j]) dp[i] = MAX(dp[i], dp[j] + 1);             if (a[i] > a[i / j]) dp[i] = MAX(dp[i], dp[i / j] + 1);           }         }         ans = MAX(dp[i], ans);       }       cout << ans <<   n ;     }     return 0;   }   