これは、プロジェクトのオイラー問題の 1 つに対する (かなり悪い) 解決策です。問題は、10_001 番目の素数を見つけることでした。以下のコードで実行できますが、実行に 8 分かかります。その理由と、それを最適化する方法を説明できますか?
primes = []
number = 2.0
until primes[10000] != nil
if (2..(number - 1)).any? do |n|
number % n == 0
end == false
primes << number
end
number = number + 1.0
end
puts primes[10000]