Re: Efficiently finding combinations



In IF/Prolog (see http://www.ifcomputer.de/Products/Prolog/ )

:- import const_domain.
:- import const_delay.

one_hundred(A,B,C,D,E) :-
[A,B,C,D,E] in 1..100,
A + B + C + D + E ?= 100,
A ?=< B, B ?=< C, C ?=< D, D ?=< E,
const_div([A,B,C,D,E]),
label([A,B,C,D,E]).

const_div([]).
const_div([V|T]) :-
freeze(V,once((0 is V mod 2 ; 0 is V mod 5))),
const_div(T).

.