#include <bits/stdc++.h>
#define BIT(x, i) (1 & ((x) >> (i)))
#define MASK(x) (1LL << (x))
#define OFF(x, i) ((x) & ~(1LL << (i)))
#define ON(x, i) ((1LL << (i)) | (x))
#define CNT(x) __builtin_popcountll(x)
#define task""
#define freopen freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout);
#define endl '\n'
#define F first
#define S second
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
using namespace std;
int t, n;
int const N = 2e6 + 6;
int p[N], pre[N];
void Sieve()
{
memset(p, 0, sizeof p);
p[1] = 1;
for (int i = 2; i * i <= N; i++)
{
if (p[i] == 0)
for (int j = i * i; j <= N; j += i)
p[j] = 1;
}
}
void Prefix()
{
pre[0] = 0;
for (int i = 1; i <= N; i++)
{
if (!p[i]) pre[i] = pre[i - 1] + 1;
else pre[i] = pre[i - 1];
}
}
void Sub1()
{
int cnt = 0, t1 = 0, t2 = 0, sum = 0;
for (int i = 1; i <= n - 2; i++)
{
for (int j = i + 1; j <= n - 1; j++)
for (int k = j + 1; k <= n; k++)
{
if ((!p[i + j] && !p[j + k] && !p[i + k]) || (p[i + j] && p[i + k] && p[j + k])) cnt++;
}
}
cout << cnt << endl;
}
void Sub2()
{
vector <int> x(n + 1, 0), y(n + 1, 0);
for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++)
{
if (p[i + j]) x[i]++, x[j]++;
else y[i]++, y[j]++;
}
long long diff = 0;
for (int i = 1; i <= n; i++) diff += 1LL * x[i] * y[i];
diff /= 2;
long long total = 1LL * n * (n - 1) * (n - 2)/6;
cout << total - diff << endl;
}
void Sub3()
{
long long diff = 0;
for (int i = 1; i < n; i++)
{
int x = pre[i + n] - pre[i];
int y = n - x - 1;
diff += 1LL * x * y;
}
diff /= 2;
long long total = 1LL * n * (n - 1) * (n - 2)/6;
cout << total - diff << endl;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//freopen
Sieve();
Prefix();
cin >> t;
while (t--)
{
cin >> n;
Sub2();
}
cerr << endl << TIME << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgQklUKHgsIGkpICgxICYgKCh4KSA+PiAoaSkpKQojZGVmaW5lIE1BU0soeCkgKDFMTCA8PCAoeCkpCiNkZWZpbmUgT0ZGKHgsIGkpICgoeCkgJiB+KDFMTCA8PCAoaSkpKQojZGVmaW5lIE9OKHgsIGkpICgoMUxMIDw8IChpKSkgfCAoeCkpCiNkZWZpbmUgQ05UKHgpIF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpCiNkZWZpbmUgdGFzayIiCiNkZWZpbmUgZnJlb3BlbiBmcmVvcGVuKHRhc2siLmlucCIsICJyIiwgc3RkaW4pOyBmcmVvcGVuKHRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBUSU1FICgxLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMpCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgdCwgbjsKaW50IGNvbnN0IE4gPSAyZTYgKyA2OwppbnQgcFtOXSwgcHJlW05dOwoKdm9pZCBTaWV2ZSgpCnsKICAgIG1lbXNldChwLCAwLCBzaXplb2YgcCk7CiAgICBwWzFdID0gMTsKICAgIGZvciAoaW50IGkgPSAyOyBpICogaSA8PSBOOyBpKyspCiAgICB7CiAgICAgICAgaWYgKHBbaV0gPT0gMCkKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKiBpOyBqIDw9IE47IGogKz0gaSkKICAgICAgICAgICAgICAgIHBbal0gPSAxOwogICAgfQp9Cgp2b2lkIFByZWZpeCgpCnsKICAgIHByZVswXSA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBOOyBpKyspCiAgICB7CiAgICAgICAgaWYgKCFwW2ldKSBwcmVbaV0gPSBwcmVbaSAtIDFdICsgMTsKICAgICAgICBlbHNlIHByZVtpXSA9IHByZVtpIC0gMV07CiAgICB9Cn0KCnZvaWQgU3ViMSgpCnsKICAgIGludCBjbnQgPSAwLCB0MSA9IDAsIHQyID0gMCwgc3VtID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuIC0gMjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDw9IG4gLSAxOyBqKyspCiAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gaiArIDE7IGsgPD0gbjsgaysrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoKCFwW2kgKyBqXSAmJiAhcFtqICsga10gJiYgIXBbaSArIGtdKSB8fCAocFtpICsgal0gJiYgcFtpICsga10gJiYgcFtqICsga10pKSBjbnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGNudCA8PCBlbmRsOwp9Cgp2b2lkIFN1YjIoKQp7CiAgICB2ZWN0b3IgPGludD4geChuICsgMSwgMCksIHkobiArIDEsIDApOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspCiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDw9IG47IGorKykKICAgIHsKICAgICAgICBpZiAocFtpICsgal0pIHhbaV0rKywgeFtqXSsrOwogICAgICAgIGVsc2UgeVtpXSsrLCB5W2pdKys7CiAgICB9CgogICAgbG9uZyBsb25nIGRpZmYgPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBkaWZmICs9IDFMTCAqIHhbaV0gKiB5W2ldOwogICAgZGlmZiAvPSAyOwogICAgbG9uZyBsb25nIHRvdGFsID0gMUxMICogbiAqIChuIC0gMSkgKiAobiAtIDIpLzY7CiAgICBjb3V0IDw8IHRvdGFsIC0gZGlmZiA8PCBlbmRsOwp9Cgp2b2lkIFN1YjMoKQp7CiAgICBsb25nIGxvbmcgZGlmZiA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBpbnQgeCA9IHByZVtpICsgbl0gLSBwcmVbaV07CiAgICAgICAgaW50IHkgPSBuIC0geCAtIDE7CiAgICAgICAgZGlmZiArPSAxTEwgKiB4ICogeTsKICAgIH0KICAgIGRpZmYgLz0gMjsKICAgIGxvbmcgbG9uZyB0b3RhbCA9IDFMTCAqIG4gKiAobiAtIDEpICogKG4gLSAyKS82OwogICAgY291dCA8PCB0b3RhbCAtIGRpZmYgPDwgZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIC8vZnJlb3BlbgoKICAgIFNpZXZlKCk7CiAgICBQcmVmaXgoKTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkKICAgIHsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICBTdWIyKCk7CiAgICB9CgogICAgY2VyciA8PCBlbmRsIDw8IFRJTUUgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==