#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
void solve() {
int N;
cin >> N;
vector<int> V(N);
for (int& x : V) {
cin >> x;
}
unordered_map<int, int> count;
for (const int x : V) {
count[x]++;
}
vector<int> frs;
for (const auto& [key, val] : count) {
frs.push_back(val);
}
sort(frs.begin(), frs.end());
int answer = N;
for (int s = 1; s <= frs.front() + 1; s++) {
int solution = 0;
bool is_bad = false;
for (const int val : frs) {
int fit = (val + s - 1) / s;
if (val < fit * (s - 1)) {
is_bad = true;
}
solution += fit;
}
if (!is_bad) {
answer = min(answer, solution);
}
}
cout << answer << "\n";
}
int main() {
int T;
cin >> T;
for (int t = 0; t < T; t++) {
solve();
}
return 0;
}