#include <bits/stdc++.h>
using namespace std;
const int MX = 200000;
int solve(const vector<int>& a, int y) {
int mx = 0;
for (int num : a) {
mx = max(mx, num);
}
vector<int> f(mx + 1, 0);
for (int num : a) {
f[num]++;
}
vector<int> u(mx + 1, 0);
for (int i = 1; i <= mx; i++) {
for (int j = i; j <= mx; j += i) {
u[i] += f[j];
}
}
vector<long long> m(mx + 1, 0);
for (int i = 1; i <= mx; i++) {
if (u[i] >= 2) {
m[i] = (long long)u[i] * (u[i] - 1) / 2; // nC2
}
}
vector<long long> g(mx + 1, 0);
for (int i = mx; i >= 1; i--) {
g[i] = m[i];
for (int j = 2 * i; j <= mx; j += i) {
g[i] -= g[j];
}
}
return (int)max(0LL, g[y]);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin >> t;
while (t--) {
int n, y;
cin >> n >> y;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << solve(a, y) << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTVggPSAyMDAwMDA7CgppbnQgc29sdmUoY29uc3QgdmVjdG9yPGludD4mIGEsIGludCB5KSB7CiAgICBpbnQgbXggPSAwOwogICAgZm9yIChpbnQgbnVtIDogYSkgewogICAgICAgIG14ID0gbWF4KG14LCBudW0pOwogICAgfQoKICAgIHZlY3RvcjxpbnQ+IGYobXggKyAxLCAwKTsKICAgIGZvciAoaW50IG51bSA6IGEpIHsKICAgICAgICBmW251bV0rKzsKICAgIH0KCiAgICB2ZWN0b3I8aW50PiB1KG14ICsgMSwgMCk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBteDsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IGk7IGogPD0gbXg7IGogKz0gaSkgewogICAgICAgICAgICB1W2ldICs9IGZbal07CiAgICAgICAgfQogICAgfQoKICAgIHZlY3Rvcjxsb25nIGxvbmc+IG0obXggKyAxLCAwKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG14OyBpKyspIHsKICAgICAgICBpZiAodVtpXSA+PSAyKSB7CiAgICAgICAgICAgIG1baV0gPSAobG9uZyBsb25nKXVbaV0gKiAodVtpXSAtIDEpIC8gMjsgLy8gbkMyCiAgICAgICAgfQogICAgfQoKICAgIHZlY3Rvcjxsb25nIGxvbmc+IGcobXggKyAxLCAwKTsKICAgIAogICAgZm9yIChpbnQgaSA9IG14OyBpID49IDE7IGktLSkgewogICAgICAgIGdbaV0gPSBtW2ldOwogICAgICAgIAogICAgICAgIGZvciAoaW50IGogPSAyICogaTsgaiA8PSBteDsgaiArPSBpKSB7CiAgICAgICAgICAgIGdbaV0gLT0gZ1tqXTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gKGludCltYXgoMExMLCBnW3ldKTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CgogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKCiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgaW50IG4sIHk7CiAgICAgICAgY2luID4+IG4gPj4geTsKCiAgICAgICAgdmVjdG9yPGludD4gYShuKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBzb2x2ZShhLCB5KSA8PCAiXG4iOwogICAgfQoKICAgIHJldHVybiAwOwp9