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