import numpy.linalg as alg
import numpy as np

# Matrices M_n et déterminant

def M(n) :
    A = np.zeros((n,n))
    for i in range(n) :
        for j in range(n) :
            A[i,j] = min([i+1,j+1])
    return A

for n in range(2,11) :
    print(M(n),alg.det(M(n)))

# Matrices T_n et produit
    
def T(n) :
    A = np.zeros((n,n))
    for i in range(n) :
        for j in range(i,n) :
            A[i,j] = 1
    return A
    
for n in range(2,11) :
    print((T(n).T).dot(T(n)))
