L’objectif
On dispose de 8 cartes symbolisant les chiffres de 1 à 8.
En utilisant toutes les cartes une seule fois, on cherche des multiplications du type :
*** x * = ****
Une des possibilités est :
453 x 6 = 2 718
Pour information, il en existe deux !
La solution
# -*- coding:Utf-8 -*- #!/usr/bin/python """ En utilisant une seule fois les chiffres de 1 à 8, on veut retrouver une autre opération du type : 453 x 6 = 2718 """ # Les cartes L=[1,2,3,4,5,6,7,8] for i in L : M=L.copy() M.remove(i) # M est la copie de L sans i for j in M : N=M.copy() N.remove(j) # N est la copie de M sans j for k in N : P=N.copy() P.remove(k) # P est la copie de N sans k for l in P : R=P.copy() R.remove(l) # R est la copie de P sans l res=(i*100+j*10+k)*l # le résultat m=res//1000 # le chiffre des milliers res=res-m*1000 c=res//100 # le chiffre des centaines res=res-c*100 d=res//10 # le chiffre des dizaines u=res-d*10 # le chiffre des unités T=[m,c,d,u] # la liste des 4 nombres obtenues R.sort() # On trie R T.sort() # On trie T if (R==T): print(i*100+j*10+k) print(l) print((i*100+j*10+k)*l) print("----------")