返回不同的布爾值我已經寫以下函數來檢查一個數是否爲素數:紅寶石功能在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