20 lines
424 B
Text
20 lines
424 B
Text
function var int: lcm(int: a2,int:b2) =
|
|
let {
|
|
int:a1 = max(a2,b2);
|
|
int:b1 = min(a2,b2);
|
|
array[0..a1,0..b1] of var int: gcd;
|
|
constraint forall(a in 0..a1)(
|
|
forall(b in 0..b1)(
|
|
gcd[a,b] ==
|
|
if (b == 0) then
|
|
a
|
|
else
|
|
gcd[b, a mod b]
|
|
endif
|
|
)
|
|
)
|
|
} in (a1*b1) div gcd[a1,b1];
|
|
|
|
var int: lcm1 = lcm(18,12);
|
|
solve satisfy;
|
|
output [show(lcm1),"\n"];
|