#!/usr/bin/python3
#SOS
import numpy as np
def generate_matrix(n):
	return np.random.uniform(-2.0,2.0,(n,n))

def calculate_m(a,b):
	return a.dot(b)

def check_det(d):
	det=np.linalg.det(d)
	if det!=0 : return True
	else : return False

def calculate_inv(d):
	return np.linalg.inv(d)

def main():
	while True:
		n=input("Δώσε n:")
		n=eval(n)
		if (n>2) : break
	a=generate_matrix(n)
	b=generate_matrix(n)
	np.set_printoptions(precision=2)
	print (a)
	print ("===================")
	print (b)
	c=calculate_m(a,b)
	print ("-------------------")
	print (c)
	if (check_det(c)):
		print ("Non zero determinant")
		print ("++++++++++++")
		cinv=calculate_inv(c)
		print (cinv)
	else:
		print ("Zero determinant")

if __name__=="__main__":
	main()
