ruby - 如何在 Ruby 中测试一个值是否为质数?既简单又困难的方法?

标签 ruby algorithm

我正在尝试创建一个程序来测试一个值是否为素数,但我不知道如何做。这是我的代码:

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/

相关文章:

ruby-on-rails - 这行在 Ruby 中是什么意思?

将点均匀放置在球体内的算法

algorithm - 查找模数为 k 的数字

确定数字是否在模块化算术中的两个数字之间的算法

ruby - 在固定大小的数组上展开选择的算法

ruby-on-rails - 如何在 Ruby on Rails 中单击按钮更改值

c++ - 我可以检查给定的数字是否可以是任何具有 n 项的算术级数的总和?

algorithm - 数组越界 F#

ruby-on-rails - 如果来自不同分支的后续迁移已经运行,如何在 Heroku 上运行来自 Git 分支的迁移?

ruby - 如何在 rspec 测试中定义一个可以被辅助函数访问的简单全局变量