私は想像できるすべてのサイトを検索しましたが、ruby1.8がmathnの下のPrimeクラスの素数のリストを作成するために使用する基本アルゴリズムを決定できません。以下は、(100番目の素数を見つけるために)100回呼び出されるsucメソッドの実行可能なバージョンです。誰かがこれがどのように機能するか知っていますか?
number_of_primes = 100
seed = 1
primes = Array.new
counts = Array.new
while primes.size < number_of_primes
i = -1
size = primes.size
while i < size
if i == -1
seed += 1
i += 1
else
while seed > counts[i]
counts[i] += primes[i]
end
if seed != counts[i]
i += 1
else
i = -1
end
end
end
primes.push seed
counts.push (seed + seed)
end
puts seed
もちろん、実際のコードは次のとおりです。http: //ruby-doc.org/stdlib-1.8.7/libdoc/mathn/rdoc/Prime.html
ふるいにかける事前定義されたリストがないため、ふるいアルゴリズムのようには見えません。除算またはモジュラス演算がないため、試行除算アルゴリズムではありません。私は完全に困惑しています。