我一直在处理素数程序,我遇到了一些Ruby代码:
(2..prime/2).none?{|i| prime % i == 0}
有人可以把它分解给我并用简单的语言向我解释.如果你熟悉reddit EIL5.(解释它就像我是5.)
我在这里找到了代码:
如何在Ruby中测试值是否为素数?简单和困难的方式?
即使非常低效,它也非常简单.它分解为:
# For each of the numbers in the range 2 to prime/2... (2..prime/2).none? do |i| # ...test that none of them divide evenly with the given prime. # That is the modulus (%) of those two numbers is zero, or no # remainder from division. prime % i == 0 end
有更好的方法来解决这个问题,但这种蛮力的方法应该有效.
none?
是Enumerable中的众多便捷方法之一.它们可以处理Array和Hash对象,并提供有用的工具,用于将一组对象转换为另一组对象.
在这种情况下,它测试的是没有数字符合这些标准.这与您的要求相反any?
或all?
取决于您的要求.