因为我是初学者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
Run Code Online (Sandbox Code Playgroud)
MAX_DIVIDER = 10
DIVIDERS = (1..MAX_DIVIDER)
number = MAX_DIVIDER
number += 1 until DIVIDERS.all? { |divider| number % divider == 0 }
number #=> 2520
Run Code Online (Sandbox Code Playgroud)
您还可以使用Integer#lcmlcm方法来帮助您找到最不常见的倍数.
DIVIDERS.reduce(:lcm) #=> 2520
Run Code Online (Sandbox Code Playgroud)