1% Copied from https://swish.swi-prolog.org/example/clpfd_queens.pl
2% Author: Markus Triska
3
4top :- n_queens(200,_), fail.
5top.
6
7:- use_module(library(clpfd)).
8
9n_queens(N, Qs) :-
10	length(Qs, N),
11	Qs ins 1..N,
12	safe_queens(Qs).
13
14safe_queens([]).
15safe_queens([Q|Qs]) :-
16	safe_queens(Qs, Q, 1),
17	safe_queens(Qs).
18
19safe_queens([], _, _).
20safe_queens([Q|Qs], Q0, D0) :-
21	Q0 #\= Q,
22	abs(Q0 - Q) #\= D0,
23	D1 #= D0 + 1,
24	safe_queens(Qs, Q0, D1).
25