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}