/*
Curious set of integers problem in ECLiPSe..
Martin Gardner (February 1967):
"""
The integers 1,4,9, and 120 form a set with a remarkable priperty:
the product of any two integers is one less than a perfect square.
Find a fifth number that can be added to the set without destroying
this property.
"""
Solution: The number is 0.
There are however other sets of five numbers with this property.
Here are the one in the range of 0.10000:
[0, 1, 3, 8, 120]
[0, 1, 3, 120, 1680]
[0, 1, 8, 15, 528]
[0, 1, 8, 120, 4095]
[0, 1, 15, 24, 1520]
[0, 1, 24, 35, 3480]
[0, 1, 35, 48, 6888]
[0, 2, 4, 12, 420]
[0, 2, 12, 24, 2380]
[0, 2, 24, 40, 7812]
[0, 3, 5, 16, 1008]
[0, 3, 8, 21, 2080]
[0, 3, 16, 33, 6440]
[0, 4, 6, 20, 1980]
[0, 4, 12, 30, 5852]
[0, 5, 7, 24, 3432]
[0, 6, 8, 28, 5460]
[0, 7, 9, 32, 8160]
Compare with the MiniZinc:
http://www.hakank.org/minizinc/curious_set_of_integers.mzn
Model created by Hakan Kjellerstrand, hakank@bonetmail.com
See also my ECLiPSe page: http://www.hakank.org/eclipse/
*/
:-lib(ic).
:-lib(ic_global).
:-lib(ic_search).
go :-
N = 5,
dim(X, [N]),
X :: 0..10000,
ic_global:alldifferent(X),
ordered(<, X),
(multifor([I,J],1,N), param(X) do
I\=J ->
P :: 0..1000,
P*P-1 #= (X[I]*X[J])
;
true
),
search(X,0, occurrence, indomain_min, complete, []),
writeln(X), fail.