def gcd(m, n)
m, n = n, m % n until n.zero?
m.abs
end
def lcm(*args)
args.inject(1) do |m, n|
return 0 if n.zero?
(m * n).abs / gcd(m, n)
p lcm 12, 18, 22
p lcm 15, 14, -6, 10, 21