pour toute plaque dans plaques_restantes faire si plaque == cible alors afficher "Solution" sortir pour i dans [1 : taille(plaques_restantes) - 1] faire pour j dans [i+1, taille(plaques_restantes) ] faire a = plaques_restantes[i] b = plaques_restantes[j] supprimer a et b (ou les éléments aux indices i et j) de plaques_restantes si a + b < 1000 alors resoudre( plaques_restantes + [ (a+b) ], cible) supprimer (a+b) de plaques_restantes si a - b > 0 alors resoudre( plaques_restantes + [ (a-b) ], cible) supprimer (a-b) de plaques_restantes si a * b < 1000 alors resoudre( plaques_restantes + [ (a*b) ], cible) supprimer (a*b) de plaques_restantes si (b > 1) et (a est divisible par b) == 0 alors resoudre( plaques_restantes + [ (a/b) ], cible) supprimer (a/b) de plaques_restantes