我正在尝试创建一个程序来测试一个值是否为素数,但我不知道如何做。这是我的代码:
class DetermineIfPrime
def initialize (nth_value)
@nth_value = nth_value
primetest
end
def primetest
if Prime.prime?(@nth_value)
puts ("#{@nth_value} is prime")
else
puts ("This is not a prime number.")
end
rescue Exception
puts ("#{$!.class}")
puts ("#{$!}")
end
end
每次我运行它都会返回这个。
NameError
uninitialized constant DetermineIfPrime::Prime
我尝试了其他方法来完成这项工作,但我认为这是我能得到的最接近的方法。
我也试过这个:
class DetermineIfPrime
def initialize (nth_value)
@nth_value = nth_value
primetest
end
def primetest
for test_value in [2, 3, 5, 7, 9, 11, 13] do
if (@nth_value % test_value) == 0
puts ("#{@nth_value} is not divisible by #{test_value}")
else
puts ("This is not a prime number since this is divisible by #{test_value}")
break
end
end
end
end
还是我做错了什么?
最佳答案
Ruby 内置了检查数字是否为素数的方法。
require 'prime'
Prime.prime?(2) #=> true
Prime.prime?(4) #=> false
关于ruby - 如何在 Ruby 中测试一个值是否为质数?既简单又困难的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762043/