在 Ruby on Rails 中查找 60 的约数的最简单方法

use*_*057 2 ruby-on-rails ruby-on-rails-4

除了硬编码或使用 Math 模块之外,还有什么方法可以在 Ruby on Rails 中找到 60 的除数吗?我可以使用任何辅助方法/正则表达式吗?感谢您的帮助。

gla*_*tos 5

实现此目的的最简单方法之一是创建一个 1 到 60 之间的数字列表,然后仅选择能整除 60 且没有余数的数字。

为了扩展 SteveTurczyn 的答案,我们可以这样做:

(1..60).select { |n| 60 % n == 0 }
Run Code Online (Sandbox Code Playgroud)

(1..60)部分创建一个枚举器(在本例中我们可以将其视为 1 到 60 之间的数字数组)。

然后你想要获取这个数组,并只选择能被 60 整除的元素。

我们可以使用模运算符%,它给出了当我们将一个数字除以另一个数字时剩下的余数(例如,5 % 2返回1)。当然,如果没有余数,那么我们就知道该数被整除,因此是该数的约数(即,如果a % b == 0,则 b 是 a 的约数)。

因此,我们想要做的就是使用上述内容作为从 1 到 60 之间的数字数组中选择元素的标准,我们可以使用 Array #select方法来完成此操作。

如果我们有一些东西,比如一个数组(从技术上讲,我认为是一个Enumerable),我们可以使用 #select 和一个块来仅提取满足我们在块中指定的任何条件的元素。

{ |n| 60 % n == 0 }是我们传递给 #select 的块,只要60 % n是,它就会返回 true 0(每个n都是数字 1 到 60 数组中的一个元素)。Array#select仅返回数组中该块计算结果为 true 的元素 - 这就是 SteveTurczyn 的解决方案的工作原理。