#include <bits/stdc++.h>
using namespace std;
bool validPartition(vector<int>& A, int blockSize) {
int N = A.size();
if (N % blockSize != 0 || blockSize < 2) return false;
int blocks = N / blockSize;
for (int i = 0; i < blocks; ++i) {
int l = i * blockSize;
int r = l + blockSize;
int mx = *max_element(A.begin() + l, A.begin() + r);
int mn = *min_element(A.begin() + l, A.begin() + r);
if (i == 0) {
int diff = mx - mn;
for (int j = 1; j < blocks; ++j) {
int ll = j * blockSize;
int rr = ll + blockSize;
int mxx = *max_element(A.begin() + ll, A.begin() + rr);
int mnn = *min_element(A.begin() + ll, A.begin() + rr);
if ((mxx - mnn) != diff) return false;
}
return true;
}
}
return false;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
int N;
cin >> N;
vector<int> A(N);
for (int i = 0; i < N; i++) cin >> A[i];
int maxBlocks = 1;
sort(A.begin(), A.end());
do {
for (int len = 2; len <= N; ++len) {
if (N % len == 0) {
if (validPartition(A, len)) {
maxBlocks = max(maxBlocks, N / len);
}
}
}
} while (next_permutation(A.begin(), A.end()));
cout << maxBlocks << '\n';
}
return 0;
}