primes - ruby 如何生成第一个素数数字?

  显示原文与译文双语对照的内容
102 5

我在学习 ruby 做一些数学方面的事情。我想做的事情之一就是生成质数。

我想生成前十个素数和前十个。我没有问题测试一个数字,看看它是否是一个数字,但是想知道最好的方法是什么。

我使用以下方法来确定数字是否为素数:

class Integer <Numeric
 def is_prime?
 return false if self <= 1
 2.upto(Math.sqrt(self).to_i) do |x|
 return false if self%x == 0
 end
 true
 end
end
时间:原作者:0个回答

138 5

在 ruby 1.9中,有一个可以用来生成质数或者测试数字是否为素数的素数类:

require 'prime'
Prime.take(10) #=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
Prime.take_while {|p| p <10 } #=> [2, 3, 5, 7]
Prime.prime?(19) #=> true

Prime实现 each 方法并包含可以枚举模块,因此你可以完成各种有趣的事情,如过滤。映射等。

原作者:
...