返回不同的布尔值我已经写以下函数来检查一个数是否为素数:红宝石功能在IRB VS repl.it
def is_prime?(number)
arr = (2..number).to_a.select {|m| number % m == 0}
arr.length == 1 ? true : false
end
当通过4或9在IRB的数目,它正确返回假。但是,在repl.it这些评估为真。
这里是测试代码,我在repl.it运行:
puts("\nTests for #is_prime?")
puts("===============================================")
puts('is_prime?(2) == true: ' + (is_prime?(2) == true).to_s)
puts('is_prime?(3) == true: ' + (is_prime?(3) == true).to_s)
puts('is_prime?(4) == false: ' + (is_prime?(4) == false).to_s)
puts('is_prime?(9) == false: ' + (is_prime?(9) == false).to_s)
puts("===============================================")
,其输出:
Tests for #is_prime?
===============================================
is_prime?(2) == true: true
is_prime?(3) == true: true
is_prime?(4) == false: true
is_prime?(9) == false: true
===============================================
What could be causing this variation?
你能“分享”你的repl.it会话吗?这是我所看到的。 https://repl.it/Ck9M/0 – kcdragon
以下是我的repl.it会话的链接: https://repl.it/Br7y/452 – John
您的repl按预期工作。即使4和9评估为真,那是因为你检查他们是错误的。 false == false是真的 – kcdragon