這是一個(非常糟糕的)解決項目歐拉問題之一。問題是找到10_001st素數。下面的代碼是這樣做的,但需要8分鐘才能運行。你能解釋爲什麼是這種情況,以及如何優化它?爲什麼此代碼需要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]
'if enumeration.any?{} == false' =>'if enumeration.none?{}' – oldergod 2013-03-18 00:07:04