如何计算数字1到10的最小公倍数?

时间:2016-09-29 18:19:05

标签: ruby

因为我是初学者Ruby开发人员。我想知道更高级的Ruby开发人员将如何解决这个问题。我在这里寻找最小的数字除以1到10之间的数字,没有任何余数。

更正式地说,这被定义为两个或更多整数的最小公倍数,在本例中为数字1到10.

我目前的尝试:

max_divider = 10
nums = (1..max_divider).to_a
found_count = 0
x = 0
while found_count == 0
  x += 1
  nums.each do |num|
    if x % num == 0
      found_count += 1
    end
  end

  if found_count != max_divider
    found_count = 0
  end
end

p x #=> 2520

1 个答案:

答案 0 :(得分:7)

MAX_DIVIDER = 10
DIVIDERS = (1..MAX_DIVIDER)

number = MAX_DIVIDER
number += 1 until DIVIDERS.all? { |divider| number % divider == 0 }
number #=> 2520

您还可以使用lcm方法Integer#lcm来帮助您找到最不常见的倍数。

DIVIDERS.reduce(:lcm) #=> 2520