我正在尝试编写一个方法,根据被评估的整数是否为素数返回true或false . 下面的代码是基于阅读维基百科文章,以前的stackoverflow答案等拼凑在一起的东西 . 目前程序对素数返回true,但不返回false . 我想在不使用任何内置函数的情况下执行此操作 . 我该怎么解决这个问题?
def prime?(integer)
(2..integer - 1).each do |x|
if (integer % x) == 0
return false
else
return true
end
end
end
2 回答
你've got a logic problem. The program returns true for any number that'不能被2整除 . 所以,只需在循环完全执行后放入
return true
语句 .另一种方法,从变量设置为true开始 .