Skip to content

Instantly share code, notes, and snippets.

@Haroperi
Last active December 13, 2015 20:09
Show Gist options
  • Save Haroperi/4968028 to your computer and use it in GitHub Desktop.
Save Haroperi/4968028 to your computer and use it in GitHub Desktop.
Komachi calculation
% komachi
digit(X) :- member(X, [0,1,2,3,4,5,6,7,8,9]).
is_composed_of(N, X, Y) :-
digit(X),
digit(Y),
(Z is X+Y;
Z is X-Y;
Z is Y-X;
Z is X*Y;
(Y =\= 0, Z is X/Y, Mod is X mod Y, Mod == 0)),
Z == N.
komachi(A, B, C, D, Sum) :-
is_composed_of(Sum, X, Y),
is_composed_of(X, A, B),
is_composed_of(Y, C, D).
enum :-
(komachi(A, B, C, D, 10);
komachi(A, C, B, D, 10);
komachi(A, D, B, C, 10)),
print([A,B,C,D]), nl, fail.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment