Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > primeライブラリ > Primeクラス > each
each(upper_bound = nil, generator = EratosthenesGenerator.new) {|prime| ... } -> object
[permalink][rdoc]each(upper_bound = nil, generator = EratosthenesGenerator.new) -> Enumerator
全ての素数を順番に与えられたブロックに渡して評価します。
Prime.each(6).each{|prime| prime } # => 5 Prime.each(7).each{|prime| prime } # => 7 Prime.each(10).each{|prime| prime } # => 7 Prime.each(11).each{|prime| prime } # => 11
Prime.each(30).each_cons(2).select{|p,r| r-p == 2} #=> [[3, 5], [5, 7], [11, 13], [17, 19]]
このメソッドに、真の素数列でない疑似素数を与えるべきではありません。
このメソッドは、素数列の外部イテレータを内部イテレータに変換してRubyらしいプログラミングを提供することが責務です。独自に素数性の保障するのはメソッドの責務ではありません。従って、次のように精度の低い素数生成器を与えると、真に素数とは限らない数列が発生します。
Prime.each(50, Prime::Generator23.new) do |n| p n #=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49] end
[SEE_ALSO] Prime::EratosthenesGenerator, Prime::TrialDivisionGenerator, Prime::Generator23