#include <bits/stdc++.h>
using namespace std;
const int M = 400005;
int spf[M];
void sieveSPF() {
for (int i = 0; i < M; i++) spf[i] = i;
for (int i = 2; i * i < M; i++) {
if (spf[i] == i) { // i is prime
for (int j = i * i; j < M; j += i) {
if (spf[j] == j)
spf[j] = i;
}
}
}
}
set<int> gpf(int x) {
set<int> f;
while (x > 1) {
f.insert(spf[x]);
x /= spf[x];
}
return f;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
sieveSPF();
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
string temp;
getline(cin, temp);
unordered_map<int, vector<int>> d;
for (int x : a) {
for (int p : gpf(x)) {
d[p].push_back(0);
}
for (int p : gpf(x + 1)) {
d[p].push_back(1);
}
}
int ans = n;
for (auto &entry : d) {
auto &c = entry.second;
if (c.size() >= 2) {
sort(c.begin(), c.end());
int cost = c[0] + c[1];
ans = min(ans, cost);
}
}
cout << ans << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTSA9IDQwMDAwNTsKaW50IHNwZltNXTsgCgoKdm9pZCBzaWV2ZVNQRigpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTTsgaSsrKSBzcGZbaV0gPSBpOwoKICAgIGZvciAoaW50IGkgPSAyOyBpICogaSA8IE07IGkrKykgewogICAgICAgIGlmIChzcGZbaV0gPT0gaSkgeyAvLyBpIGlzIHByaW1lCiAgICAgICAgICAgIGZvciAoaW50IGogPSBpICogaTsgaiA8IE07IGogKz0gaSkgewogICAgICAgICAgICAgICAgaWYgKHNwZltqXSA9PSBqKQogICAgICAgICAgICAgICAgICAgIHNwZltqXSA9IGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCnNldDxpbnQ+IGdwZihpbnQgeCkgewogICAgc2V0PGludD4gZjsKICAgIHdoaWxlICh4ID4gMSkgewogICAgICAgIGYuaW5zZXJ0KHNwZlt4XSk7CiAgICAgICAgeCAvPSBzcGZbeF07CiAgICB9CiAgICByZXR1cm4gZjsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIHNpZXZlU1BGKCk7CgogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsKCiAgICAgICAgdmVjdG9yPGludD4gYShuKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgY2luID4+IGFbaV07CgogICAgICAgIHN0cmluZyB0ZW1wOwogICAgICAgIGdldGxpbmUoY2luLCB0ZW1wKTsgCgogICAgICAgIHVub3JkZXJlZF9tYXA8aW50LCB2ZWN0b3I8aW50Pj4gZDsKCiAgICAgICAgZm9yIChpbnQgeCA6IGEpIHsKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvciAoaW50IHAgOiBncGYoeCkpIHsKICAgICAgICAgICAgICAgIGRbcF0ucHVzaF9iYWNrKDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBmb3IgKGludCBwIDogZ3BmKHggKyAxKSkgewogICAgICAgICAgICAgICAgZFtwXS5wdXNoX2JhY2soMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGludCBhbnMgPSBuOwogICAgICAgIGZvciAoYXV0byAmZW50cnkgOiBkKSB7CiAgICAgICAgICAgIGF1dG8gJmMgPSBlbnRyeS5zZWNvbmQ7CiAgICAgICAgICAgIGlmIChjLnNpemUoKSA+PSAyKSB7CiAgICAgICAgICAgICAgICBzb3J0KGMuYmVnaW4oKSwgYy5lbmQoKSk7CiAgICAgICAgICAgICAgICBpbnQgY29zdCA9IGNbMF0gKyBjWzFdOwogICAgICAgICAgICAgICAgYW5zID0gbWluKGFucywgY29zdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K