0

RubyPrime.newのライブラリで見つけました。mathn問題の素数を生成するためにそれを使用していました。を使用して、1 から 1000 までのすべての素数を繰り返し処理したいと考えていPrimes.newます。何らかの方法で素数をループまたは反復処理するPrime.new方法はありますか?for

4

2 に答える 2

1

次のように n 個の最初の素数を取得することもできます。

Prime.each(100) do |prime|
  p prime  #=> 2, 3, 5, 7, 11, ...., 97
end

参照: http://www.ruby-doc.org/gems/docs/b/backports-2.6.1/Prime.html

編集:特定の値を超えるn個の最初の素数を取得するには、そのようなことをします(これはドラフトです)

require 'mathn'

def prime_numbers_from start, n
  primes = []
  Prime.each(n) do |prime|
    primes << prime if prime > start
  end
  primes
end

prime_numbers_from(10, 30)
# returns => [11, 13, 17, 19, 23, 29]
于 2012-10-25T23:12:38.083 に答える
1

ここでは、それを処理するための雄弁な方法があります。

ruby-1.9.3-p194 :001 > require 'mathn'
 => true

ruby-1.9.3-p194 :002 > Prime.each(1000) do |i|
ruby-1.9.3-p194 :003 >   puts i
ruby-1.9.3-p194 :004 > end
2
3
.
.
.
991
997
 => nil

PSPrime.newは時代遅れのようです。

ruby-1.9.3-p194 :005 > Prime.new
Prime::new is obsolete. use Prime::instance or class methods of Prime.
 => #<Prime:0x0000010083ca10 @generator=#<Prime::EratosthenesGenerator...>> 
于 2012-10-25T23:10:45.293 に答える