Welcome to SWI-Prolog (threaded, 64 bits, version 8.0.3) SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software. Please run ?- license. for legal details. For online help and background, visit http://www.swi-prolog.org For built-in help, use ?- help(Topic). or ?- apropos(Word). ?- consult(crypto_234_short). true. ?- test2(25). problem(numbers(1,4),goal(2)) --> no solution problem(numbers(5,5),goal(0)) --> ex(5,-,5) problem(numbers(2,0),goal(4)) --> no solution problem(numbers(1,2),goal(5)) --> no solution problem(numbers(4,1),goal(2)) --> no solution problem(numbers(3,1),goal(4)) --> ex(3,+,1) problem(numbers(0,2),goal(2)) --> ex(0,+,2) problem(numbers(4,5),goal(4)) --> no solution problem(numbers(0,3),goal(3)) --> ex(0,+,3) problem(numbers(4,4),goal(0)) --> ex(4,-,4) problem(numbers(2,4),goal(4)) --> no solution problem(numbers(1,1),goal(4)) --> no solution problem(numbers(1,1),goal(0)) --> ex(1,-,1) problem(numbers(4,5),goal(1)) --> ex(5,-,4) problem(numbers(5,0),goal(3)) --> no solution problem(numbers(0,4),goal(3)) --> no solution problem(numbers(0,4),goal(2)) --> no solution problem(numbers(2,2),goal(3)) --> no solution problem(numbers(4,5),goal(5)) --> no solution problem(numbers(4,5),goal(3)) --> no solution problem(numbers(1,3),goal(2)) --> ex(3,-,1) problem(numbers(5,2),goal(4)) --> no solution problem(numbers(0,4),goal(4)) --> ex(0,+,4) problem(numbers(1,5),goal(1)) --> no solution problem(numbers(2,2),goal(3)) --> no solution true . ?- test3(25). problem(numbers(1,5,4),goal(0)) --> ex(4,+,ex(1,-,5)) problem(numbers(1,1,1),goal(4)) --> no solution problem(numbers(3,2,1),goal(0)) --> ex(ex(3,-,2),-,1) problem(numbers(1,2,3),goal(3)) --> ex(3,*,ex(2,-,1)) problem(numbers(4,2,5),goal(1)) --> ex(ex(4,+,2),-,5) problem(numbers(3,1,1),goal(5)) --> ex(1,+,ex(3,+,1)) problem(numbers(3,2,1),goal(0)) --> ex(ex(3,-,2),-,1) problem(numbers(1,2,3),goal(3)) --> ex(3,*,ex(2,-,1)) problem(numbers(5,3,0),goal(4)) --> no solution problem(numbers(1,3,4),goal(3)) --> no solution problem(numbers(2,0,2),goal(1)) --> ex(ex(2,+,0),/,2) problem(numbers(4,1,0),goal(2)) --> no solution problem(numbers(2,0,1),goal(4)) --> no solution problem(numbers(1,4,5),goal(2)) --> ex(5,+,ex(1,-,4)) problem(numbers(1,0,3),goal(4)) --> ex(3,+,ex(1,+,0)) problem(numbers(1,4,1),goal(5)) --> ex(1,*,ex(1,+,4)) problem(numbers(4,5,5),goal(1)) --> no solution problem(numbers(4,5,1),goal(1)) --> ex(ex(5,-,4),*,1) problem(numbers(2,5,1),goal(0)) --> no solution problem(numbers(2,5,0),goal(2)) --> ex(2,+,ex(5,*,0)) problem(numbers(0,0,0),goal(0)) --> ex(ex(0,+,0),+,0) problem(numbers(5,0,3),goal(3)) --> ex(3,+,ex(5,*,0)) problem(numbers(0,4,0),goal(4)) --> ex(0,+,ex(0,+,4)) problem(numbers(1,4,0),goal(4)) --> ex(0,+,ex(1,*,4)) problem(numbers(0,0,0),goal(0)) --> ex(ex(0,+,0),+,0) true . ?- test4(25). problem(numbers(2,2,2,3),goal(4)) --> ex(ex(2,+,2),*,ex(3,-,2)) problem(numbers(1,2,3,2),goal(5)) --> ex(ex(1,-,2),+,ex(3,*,2)) problem(numbers(4,3,4,1),goal(5)) --> ex(ex(4,-,3),*,ex(4,+,1)) problem(numbers(5,5,1,3),goal(5)) --> ex(ex(5,+,5),/,ex(3,-,1)) problem(numbers(1,3,2,5),goal(5)) --> ex(5,*,ex(ex(1,*,3),-,2)) problem(numbers(5,2,5,0),goal(4)) --> no solution problem(numbers(5,1,4,1),goal(3)) --> ex(ex(5,+,1),-,ex(4,-,1)) problem(numbers(3,2,4,4),goal(5)) --> ex(ex(3,+,2),+,ex(4,-,4)) problem(numbers(5,1,4,2),goal(2)) --> ex(ex(4,*,2),-,ex(5,+,1)) problem(numbers(3,0,5,1),goal(4)) --> ex(ex(3,*,0),+,ex(5,-,1)) problem(numbers(1,5,2,4),goal(4)) --> ex(ex(1,+,5),+,ex(2,-,4)) problem(numbers(2,5,2,2),goal(4)) --> ex(ex(ex(2,*,5),-,2),/,2) problem(numbers(0,2,4,2),goal(4)) --> ex(ex(4,+,2),-,ex(0,+,2)) problem(numbers(0,2,1,1),goal(2)) --> ex(ex(0,+,2),*,ex(1,*,1)) problem(numbers(3,1,3,5),goal(1)) --> ex(ex(3,*,1),+,ex(3,-,5)) problem(numbers(2,3,2,1),goal(5)) --> ex(ex(2,+,3),*,ex(2,-,1)) problem(numbers(3,3,3,4),goal(1)) --> ex(ex(3,+,4),-,ex(3,+,3)) problem(numbers(3,5,3,4),goal(0)) --> ex(ex(5,+,4),-,ex(3,*,3)) problem(numbers(5,3,3,5),goal(5)) --> ex(5,*,ex(3,-,ex(5,-,3))) problem(numbers(4,0,3,5),goal(2)) --> ex(ex(3,+,5),/,ex(4,+,0)) problem(numbers(4,0,1,2),goal(4)) --> ex(ex(4,+,0),*,ex(2,-,1)) problem(numbers(2,3,0,0),goal(2)) --> ex(ex(2,+,0),+,ex(3,*,0)) problem(numbers(5,2,5,3),goal(4)) --> ex(ex(5,+,ex(5,+,2)),/,3) problem(numbers(4,2,4,3),goal(2)) --> ex(ex(4,*,3),/,ex(4,+,2)) problem(numbers(0,5,5,4),goal(2)) --> no solution true . ?- halt.