Ruby 素数检查器总是返回true

Ruby 素数检查器总是返回true,ruby,Ruby,我被指派创建一个方法,该方法接受一个整数,如果它是素数,则返回true,如果它不是素数,则返回false。我在下面写的代码没有返回非素数的false。有什么想法吗 def prime?(integer) (2...integer).each do |divisor| if integer % divisor == 0 return false else return true end end end 如果你的else条件不能被任何除数整

我被指派创建一个方法,该方法接受一个整数,如果它是素数,则返回
true
,如果它不是素数,则返回
false
。我在下面写的代码没有返回非素数的
false
。有什么想法吗

def prime?(integer)
  (2...integer).each do |divisor| 
    if integer % divisor == 0
      return false
    else
      return true
    end
  end
end

如果你的
else
条件不能被任何除数整除,它将立即生效。你需要把它移出循环

def prime? (integer)
  (2...integer).each do |divisor| 
    if integer % divisor == 0
     return false
    end
  end
  true
end
一个衬板,带
无?
(谢谢sawa)


你的建议是对的。您可以使用
none?
简化代码。噢,我不知道
none?
。谢谢
(2...integer).none? {|i| integer % i == 0}