#include <bits/stdc++.h>
using namespace std;
map<int, vector<int> > divi;
void sieve() {
  for (int j = 1; j <= 100000; j++) {
    for (int i = 1; i <= sqrt(j); i++) {
      if (j % i == 0) {
        if (j / i == i) {
          divi[j].push_back(i);
        } else {
          divi[j].push_back(i);
          divi[j].push_back(j / i);
        }
      }
    }
  }
}
long long int lis(long long int arr[], int n) {
  long long int lis[n];
  lis[0] = 1;
  for (int i = 2; i <= n; i++) {
    lis[i - 1] = 1;
    for (int k = 0; k < divi[i].size(); k++) {
      int j = divi[i][k];
      if (arr[i - 1] > arr[j - 1] && lis[i - 1] < lis[j - 1] + 1 && i % j == 0)
        lis[i - 1] = lis[j - 1] + 1;
    }
  }
  return *max_element(lis, lis + n);
}
int main() {
  sieve();
  int t;
  cin >> t;
  while (t--) {
    long long int n;
    cin >> n;
    long long int arr[n];
    for (long long int i = 0; i < n; i++) {
      cin >> arr[i];
    }
    long long int ans = lis(arr, n);
    cout << ans << endl;
  }
}
