% https://open.kattis.com/problems/heirsdilemma % 1s % 1.7s % Picat is much faster: 0.05s on instance 4 (0 987654) import util,cp. main :- [Low,Up] = read_file_lines().first.split(" ").map(to_int), println([low=Low,up=Up]), Sol=findall(N,s(Low,Up,N)), Len = Sol.len, writeln(Len). s(Low,Up,N) :- X = new_list(6), X :: 1..9, N :: Low..Up, to_num(X,1,6,10,0,N), all_different(X), append(X,[N],Vars), d(X,N), solve($[],Vars). d([],_). d([D|Ds],N) :- N mod D #= 0, d(Ds,N). to_num([],_I,_Len,_Base,Num,Num). to_num([H|T],I,Len,Base,Num0,Num) :- Len1 #= Len-I, Num1 #= Num0 + H*(Base**Len1), I1 #= I+1, to_num(T,I1,Len,Base,Num1,Num).