# Función que verifica si una matriz es un cuadrado mágico
def es_cuadrado_magico(matriz):
# Obtenemos el número de filas y columnas de la matriz
n = len(matriz)
# Función que calcula la suma de las filas, columnas o diagonales de una matriz
def suma(matriz, tipo):
if tipo == "filas":
# Calculamos la suma de cada fila
return [sum(fila) for fila in matriz]
elif tipo == "columnas":
# Calculamos la suma de cada columna
return [sum(matriz[i][j] for i in range(n)) for j in range(n)]
elif tipo == "diagonal principal":
# Calculamos la suma de la diagonal principal
return sum(matriz[i][i] for i in range(n))
elif tipo == "diagonal secundaria":
# Calculamos la suma de la diagonal secundaria
return sum(matriz[i][n-1-i] for i in range(n))
# Verificamos si todas las sumas son iguales
if all(x == suma(matriz, "filas")[0] for x in suma(matriz, "filas") + suma(matriz, "columnas") + [suma(matriz, "diagonal principal"), suma(matriz, "diagonal secundaria")]):
return True
else:
return False
# Prueba de la función
matriz = [[4,9,2],[3,5,7],[8,1,6]]
if es_cuadrado_magico(matriz):
print("La matriz es un cuadrado mágico.")
else:
print("La matriz no es un cuadrado mágico.")