listToNumber
(List
, Number) :- listToNumber
(List
, 0, Number).listToNumber([], X, X).
listToNumber([H | Tail], A, X) :-
listToNumber(Tail, Anew, X).
shatter(InList, OutLists) :-
length(InList, InL),
between(1, InL, OutL),
length(OutLists, OutL),
append(OutLists, InList),
forall(member(SubOutLists, OutLists), SubOutLists \= []).
split(InList, OutLists) :-
shatter(InList, OutLists),
length(OutLists, 3).
isEqual(X) :-
permutation(X, [1,2,3,4,5,6,7,8,9]),
split(X, List),
maplist(listToNumber, List, Y),
Y = [Multiplicand, Multiplier, Product],
Product =:= Multiplicand * Multiplier.
bGlzdFRvTnVtYmVyKExpc3QsIE51bWJlcikgOi0gbGlzdFRvTnVtYmVyKExpc3QsIDAsIE51bWJlcikuCmxpc3RUb051bWJlcihbXSwgWCwgWCkuCmxpc3RUb051bWJlcihbSCB8IFRhaWxdLCBBLCBYKSA6LQogICAgICAgIEFuZXcgaXMgQSAqIDEwICsgSCwKICAgICAgICBsaXN0VG9OdW1iZXIoVGFpbCwgQW5ldywgWCkuCgpzaGF0dGVyKEluTGlzdCwgT3V0TGlzdHMpIDotIAogICAgICAgIGxlbmd0aChJbkxpc3QsIEluTCksCiAgICAgICAgYmV0d2VlbigxLCBJbkwsIE91dEwpLAogICAgICAgIGxlbmd0aChPdXRMaXN0cywgT3V0TCksCiAgICAgICAgYXBwZW5kKE91dExpc3RzLCBJbkxpc3QpLAogICAgICAgIGZvcmFsbChtZW1iZXIoU3ViT3V0TGlzdHMsIE91dExpc3RzKSwgU3ViT3V0TGlzdHMgXD0gW10pLgoKc3BsaXQoSW5MaXN0LCBPdXRMaXN0cykgOi0gCiAgICAgICAgc2hhdHRlcihJbkxpc3QsIE91dExpc3RzKSwKICAgICAgICBsZW5ndGgoT3V0TGlzdHMsIDMpLgoKaXNFcXVhbChYKSA6LQogICAgICAgIHBlcm11dGF0aW9uKFgsIFsxLDIsMyw0LDUsNiw3LDgsOV0pLAogICAgICAgIHNwbGl0KFgsIExpc3QpLAogICAgICAgIG1hcGxpc3QobGlzdFRvTnVtYmVyLCBMaXN0LCBZKSwKICAgICAgICBZID0gW011bHRpcGxpY2FuZCwgTXVsdGlwbGllciwgUHJvZHVjdF0sCiAgICAgICAgUHJvZHVjdCA9Oj0gTXVsdGlwbGljYW5kICogTXVsdGlwbGllci4=