Escribir una función cuadrado_magico(m) tal que dada una matriz m cuadrada de dimensión n × n, retorne True si la matriz m es un cuadrado mágico o False si no lo es.
Diremos que una matriz m de dimensión n × n es un cuadrado mágico si sus elementos son los números 1,2,…,n2, y todas las filas, todas las columnas y las dos diagonales suman lo mismo.
Por ejemplo, la matriz (Python) 3 × 3 [[6,1,8],[7,5,3],[2,9,4]] es un cuadrado mágico, cuya suma es 15.
Entrada
La función tiene una matriz m de dimensión n × n como parámetro.
Observaciones
Considerar la posibilidad de utilizar la función solución del problema P27498 (Transposed matrix) como función auxiliar en este problema. Recordar que, en caso de que decida utilizarla, debe añadirla al archivo que envíe como solución.
Puede utilizar la función sum(lst,0) para sumar los elementos de la lista lst.
No puede utilizar el módulo numpy, ni ningún otro módulo.
Una vez definida la función, al probarla en el REPL de Python debería salir lo mismo que puede observar más abajo.
>>> cuadrado_magico([[6, 1, 8], [7, 5, 3], [2, 9, 4]]) True >>> cuadrado_magico([[6, 1, 8], [7, 5, 9], [2, 3, 4]]) False >>> cuadrado_magico([[1, 6, 8], [5, 7, 3], [9, 2, 4]]) False >>> cuadrado_magico([[1]]) True >>> cuadrado_magico([[1, 2], [3, 4]]) False >>> cuadrado_magico([[4, 5, 16, 9], [14, 11, 2, 7], [1, 8, 13, 12], [15, 10, 3, 6]]) True >>>