#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
  if (n <= 1) return false;
  for (int i = 2; i < n; i++)
    if (n % i == 0) return false;
  return true;
}
int nextPrime(int N) {
  if (N <= 1) return 2;
  int prime = N;
  bool found = false;
  while (!found) {
    prime++;
    if (isPrime(prime)) found = true;
  }
  return prime;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    if (isPrime(n)) {
      for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
          cout << 1 << " ";
        }
        cout << endl;
      }
    } else {
      long long int ne = nextPrime(n - 1);
      long long int sum = 0, nes;
      while (1) {
        nes = ne - (n - 1);
        if (isPrime(nes)) {
          ne = nextPrime(ne);
        } else {
          ne = nes;
          break;
        }
      }
      for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n; j++) {
          if (j < n - 1) {
            cout << 1 << " ";
          } else {
            cout << ne;
          }
        }
        cout << endl;
      }
      sum = (n - 1) * ne;
      long long int y = nextPrime(sum);
      long long int u;
      while (1) {
        u = y - sum;
        if (isPrime(u)) {
          y = nextPrime(y);
        } else {
          u = y - sum;
          break;
        }
      }
      for (int k = 0; k < n - 1; k++) {
        cout << ne << " ";
      }
      cout << u << endl;
    }
  }
  return 0;
}
