RosettaCodeData/Task/Least-common-multiple/Ruby/least-common-multiple-2.rb

15 lines
206 B
Ruby
Raw Permalink Normal View History

2015-11-18 06:14:39 +00:00
def gcd(m, n)
m, n = n, m % n until n.zero?
m.abs
end
2013-04-10 21:29:02 -07:00
def lcm(*args)
args.inject(1) do |m, n|
2015-11-18 06:14:39 +00:00
return 0 if n.zero?
(m * n).abs / gcd(m, n)
2013-04-10 21:29:02 -07:00
end
end
2015-11-18 06:14:39 +00:00
p lcm 12, 18, 22
p lcm 15, 14, -6, 10, 21