# coding: latin-1 from carre_magique import CarreMagique dim = 3 nb = dim*dim res = [] # contiendra la liste des carrés magiques # le compteur : neuf nombres 1 ind = [1 for i in range (0,nb) ] while ind [0] <= nb : # transformation d'une liste en une liste de listes # [1,2,3,4,5,6,7,8,9] --> [[1,2,3],[4,5,6],[7,8,9]] l = [] for i in range (0, dim) : l.append ( ind [i*dim:(i+1)*dim] ) # on vérifie que le carré est magique et # a des nombres tous différents cm = CarreMagique (l) if cm.nombre_differents () and cm.est_magique () : res.append (cm) # on passe au carré suivant : i = nb-1 # dernier indice (9 ici) ind [i] += 1 # addition de 1 au dernier indice while i > 0 and ind [i] > nb : ind [i-1] += 1 # un des indices est supérieur à nb (9 ici) ind [i] = 1 # on le remet à 1 i -= 1 # et on propage l'information à l'indice inférieur # résultat final print len (res) for r in res : print r