#include <bits/stdc++.h>
using namespace std;
const long double pi = acos((long double)-1);
void in(initializer_list<int *> li) {
  for (auto ptr = li.begin(); ptr != li.end(); ptr++) scanf("%d", *ptr);
}
void in(initializer_list<long long *> li) {
  for (auto ptr = li.begin(); ptr != li.end(); ptr++) scanf("%lld", *ptr);
}
void in(initializer_list<double *> li) {
  for (auto ptr = li.begin(); ptr != li.end(); ptr++) scanf("%lf", *ptr);
}
void out(initializer_list<int> li) {
  for (auto ptr = li.begin(); ptr != li.end(); ptr++) printf("%d ", *ptr);
}
void outln(initializer_list<int> li) {
  for (auto ptr = li.begin(); ptr != li.end(); ptr++) printf("%d\n", *ptr);
}
void out(initializer_list<long long> li) {
  for (auto ptr = li.begin(); ptr != li.end(); ptr++) printf("%lld ", *ptr);
}
void outln(initializer_list<long long> li) {
  for (auto ptr = li.begin(); ptr != li.end(); ptr++) printf("%lld\n", *ptr);
}
int in(int &a, int &b, int &c, int &d) {
  return scanf("%d%d%d%d", &a, &b, &c, &d);
}
int in(int &a, int &b, int &c) { return scanf("%d%d%d", &a, &b, &c); }
int in(int &a, int &b) { return scanf("%d%d", &a, &b); }
int in(long long &a, long long &b) { return scanf("%lld%lld", &a, &b); }
int in(long long &a, long long &b, long long &c, long long &d) {
  return scanf("%lld%lld%lld%lld", &a, &b, &c, &d);
}
int in(long long &a, long long &b, long long &c) {
  return scanf("%lld%lld%lld", &a, &b, &c);
}
int in(long long &a) { return scanf("%lld", &a); }
int in(int &a) { return scanf("%d", &a); }
int in(char *s) { return scanf("%s", s); }
int in(char &c) { return scanf("%c", &c); }
void out(int a, bool ln) { printf("%d%c", a, " \n"[ln]); }
void out(long long a, bool ln) { printf("%lld%c", a, " \n"[ln]); }
void out(double a, int digit, bool ln) {
  printf("%.*f%c", digit, a, " \n"[ln]);
}
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
const int inf = 0x3f3f3f3f;
const double eps = 1e-8;
const int maxn = 3e6 + 5;
const int maxm = 2e6 + 5;
const long long mod = 998244353;
int a[maxn];
vector<int> v;
int main() {
  int TT;
  scanf("%d", &TT);
  for (int TTT = 1; TTT <= TT; TTT++) {
    int n;
    in(n);
    for (int i = 1; i <= n; ++i) {
      int b;
      in(b);
      a[b]++;
    }
    v.clear();
    int mx = n + 1;
    for (int i = 1; i <= n; ++i) {
      if (a[i]) {
        v.push_back(a[i]);
        mx = min(mx, a[i] + 1);
      }
      a[i] = 0;
    }
    int k = v.size(), ans = inf;
    for (int i = 1; i <= mx; ++i) {
      int sum = 0;
      bool flag = 1;
      for (int j = 0; j < k; ++j) {
        int num = (v[j] - 1) / i + 1;
        if (num * (i - 1) > v[j] || v[j] > num * i) {
          flag = 0;
          break;
        }
        sum += num;
      }
      if (!flag) continue;
      ans = min(ans, sum);
    }
    out(ans, 1);
  }
  return 0;
}
