我被赋予了一个赋值来创建一个取整数的方法,如果它是素数则返回true
,如果不是则返回false
。我在下面写的代码没有为非素数返回false
。有什么想法吗?
def prime?(integer)
(2...integer).each do |divisor|
if integer % divisor == 0
return false
else
return true
end
end
end
答案 0 :(得分:7)
如果else
条件不能被任何除数整除,则会立即启动它。你需要把它移到循环之外。
def prime? (integer)
(2...integer).each do |divisor|
if integer % divisor == 0
return false
end
end
true
end
none?
的单行(谢谢sawa)
(2...integer).none? {|i| integer % i == 0}