j'ai resolu avec prolog
convertir([T|Q],[T2|Q2]):-
T2#=T-48, //pour se ramener au valeur 1....9
convertir(Q,Q2).
convertir([],[]).
decomposer(A,B):-
name(A,L), // donne la valeur ASCII
convertir(L,B).
fraction(A,B,R):-
fd_domain([A,B],1,98765432), // domaine de valeur possible
A/B#=R, // contrainte sur la division
fd_labeling([A,B]), // affecter une valeur possible a A et B
decomposer(A,C),
decomposer(B,D), // obtenir la liste des chiffres des 2 nombres
append(C,D,L), // concatenation des Liste des chiffres
fd_domain(L,1,9), // chiffres peuvent etre 1...9
fd_exactly(1,L,1), // chaque chiffre doit etre present exactement 1x
fd_exactly(1,L,2),
fd_exactly(1,L,3),
fd_exactly(1,L,4),
fd_exactly(1,L,5),
fd_exactly(1,L,6),
fd_exactly(1,L,7),
fd_exactly(1,L,8),
fd_exactly(1,L,9),
fd_all_different(L). // chaque chiffre doit etre different