mers/examples/04_Greatest_Common_Divisor.mers
2024-06-19 13:58:30 +02:00

27 lines
595 B
Plaintext

gcd := vals -> {
loop {
(a, b) := vals
if a.eq(b)
(a)
else if b.subtract(a).signum.eq(1)
&vals = (a, b.subtract(a))
else
&vals = (a.subtract(b), b)
}
}
get_num := () -> {
loop {
line := ().read_line.try((line) -> line.trim, () -> "")
line.parse_float.try(
(n) -> (n)
() -> ("Error: '", line, "' not a number!").concat.println
)
}
}
("gcd of 899 and 2900 is ", (899, 2900).gcd).concat.println // 29
"Now type two numbers!".println
(a, b) := (().get_num, ().get_num)
("gcd of ", a, " and ", b, " is ", (a, b).gcd).concat.println