#include<iostream>
#include<cmath>
using namespace std;
bool isprime(long int num)
{
int count=0;
bool x=false;
for(int i=2; i<sqrt(num); i++)
{
if(num%i==0)
{
count++;
break;
}
}
if(count==0)
x=true;
return x;
}
int main()
{ bool flag=false;
int t,i=0,j=0,k=1,n,l=1,m;
cin>>t;
while(t--){
cin>>n;
m=n;
int X[n][n];
while(n>0)
{
for(;j<n;j++)
{
X[i][j] =k;
k++;
}
j--;
n--;
i++;
for(;i<=n;i++)
{
X[i][j] =k;
k++;
}
i--;
j--;
for(;j>=(l-1);j--)
{
X[i][j] =k;
k++;
}
j++;
n--;
i--;
for(;i>=l;i--)
{
X[i][j] =k;
k++;
}
l++;
j++;
i++;
n++;
}
int sum=0;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
k=X[i][i];
flag=isprime(k);
if(flag==true){
sum+=k;
flag=false;
}
k=X[j-i][j-i];
flag=isprime(k);
if(flag==true){
sum+=k;
flag=false;
}
if(j==i){
k=X[i][i];
flag=isprime(k);
if(flag==true){
sum-=k;
flag=false;
}
}
}
}
cout<<sum;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNtYXRoPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc3ByaW1lKGxvbmcgaW50IG51bSkKewogCglpbnQgY291bnQ9MDsKCWJvb2wgeD1mYWxzZTsgCiAKCWZvcihpbnQgaT0yOyBpPHNxcnQobnVtKTsgaSsrKQoJewoJIAoJCWlmKG51bSVpPT0wKQoJCXsKCSAgICAgICAgIGNvdW50Kys7CgkgICAgICAgICBicmVhazsKCSAgICAgICAgfQoJfQoKCSAgIGlmKGNvdW50PT0wKQoJICAgeD10cnVlOwogICAKICAgcmV0dXJuIHg7CiAKfQoKCmludCBtYWluKCkKewlib29sIGZsYWc9ZmFsc2U7CglpbnQgdCxpPTAsaj0wLGs9MSxuLGw9MSxtOwoJY2luPj50OwoJd2hpbGUodC0tKXsKCgljaW4+Pm47CgltPW47CglpbnQgWFtuXVtuXTsKCQoJd2hpbGUobj4wKQoJewoKCQlmb3IoO2o8bjtqKyspCgkJewoJCQlYW2ldW2pdID1rOwoJCQlrKys7CgkJfQoJCWotLTsKCQluLS07CgkJaSsrOwoJCWZvcig7aTw9bjtpKyspCgkJewoJCQlYW2ldW2pdID1rOwogICAgICAgICAgICAgICAgICAgICAgICBrKys7CgkJfQoJCWktLTsKCQlqLS07CgkJZm9yKDtqPj0obC0xKTtqLS0pCgkJewoJCQlYW2ldW2pdID1rOwogICAgICAgICAgICAgICAgICAgICAgICBrKys7CgkJfQoJCWorKzsKCQluLS07CgkJaS0tOwoJCWZvcig7aT49bDtpLS0pCgkJewoJCQlYW2ldW2pdID1rOwogICAgICAgICAgICAgICAgICAgICAgICBrKys7CgkJfQoJCWwrKzsKCQlqKys7CgkJaSsrOwoJCW4rKzsKCQkKCQkKCgl9CglpbnQgc3VtPTA7Cglmb3IoaT0wO2k8bTtpKyspewoJCWZvcihqPTA7ajxuO2orKyl7CgkJCQkJaz1YW2ldW2ldOwoJCQkJCWZsYWc9aXNwcmltZShrKTsKCQkJCQlpZihmbGFnPT10cnVlKXsKCQkJCQkJc3VtKz1rOwoJCQkJCQlmbGFnPWZhbHNlOwoJCQkJCX0KCQkJCQlrPVhbai1pXVtqLWldOwoJCQkJCWZsYWc9aXNwcmltZShrKTsKCQkJCQlpZihmbGFnPT10cnVlKXsKCQkJCQkJc3VtKz1rOwoJCQkJCQlmbGFnPWZhbHNlOwoJCQkJCX0KCQkJCQlpZihqPT1pKXsKCQkJCQlrPVhbaV1baV07CgkJCQkJZmxhZz1pc3ByaW1lKGspOwoJCQkJCWlmKGZsYWc9PXRydWUpewoJCQkJCQlzdW0tPWs7CgkJCQkJCWZsYWc9ZmFsc2U7CgkJCQkJCX0JCgkJCQkJfQoJCX0JCgkJCgkgIH0KCgljb3V0PDxzdW07Cgl9CglyZXR1cm4gMDsKfQ==