我有一个关于 Ruby 循环的非常基本的问题。
编写的这个程序返回第 i 个素数 +1(即示例应返回 17)。我知道我可以简单地 return cand-1
,但我想知道检查是否在循环底部找到答案while
并且只有在没有找到答案时才增加的“Ruby 方式”是什么。
def ith_prime(i)
pI = 0 # primes index
divs = []
cand = 2
until pI == i do
if divs.find { |div| cand%div == 0 } == nil
divs << cand
pI += 1
end
cand += 1
end
cand
end
puts ith_prime(7)
> 18