Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
:- use_module(library(clpfd)). % relates numbers to their digits, e.g. number_digits(123, [1,2,3]). number_digits(0, []). number_digits(Num, [D|Ds]) :- D in 0..9, Num #= D*10^Exp + Num0, length(Ds, Exp), number_digits(Num0, Ds). puzzle(Digits) :- Digits = [A,B,C,D,E,F,G,H], number_digits(Num1, [A,B,C,D,E]), number_digits(_Num2, [F,G,A]), Num3 #= Num1 * A, number_digits(Num3, [_,_,H,_,_,_]), Num4 #= Num1 * G, number_digits(Num4, [B,B,_,_,_]), Num5 #= Num1 * F, number_digits(Num5, [_,_,H,_,_,_]), Num6 #= Num3 + Num4*10 + Num5*100, number_digits(Num6, [_,F,_,_,_,D,_,_]), all_distinct(Digits), label(Digits).