gpt4 book ai didi

ruby - 如何创建一个返回第 n 个素数的方法?

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:00 24 4
gpt4 key购买 nike

我正在尝试编写一个返回第 n 个素数的方法。

我已经制定了解决方案,但问题出在我的方法上。我创建了大量似乎处理速度超慢的数字。 (1..104729).to_a 确切地说。我选择 104729 是因为最大 n 可以是 10000,而第 10000 个整数是 104729。我正在寻找一种方法来优化我的方法。

104729 是不是太大了?有没有一种方法可以这样写,这样我就不会创建一个大数组?

方法如下:

def PrimeMover(num)

def is_prime(x)
i = 0
nums = (2..x).to_a
while nums[i] < nums.max
if x % nums[i] != 0
i += 1
else
return false
end
end
return true
end

primes_arr = (3..104729).to_a.select {|y| is_prime(y)}

primes_arr[num]

end

最佳答案

require "prime"

def find_prime(nth)
Prime.take(nth).last
end

关于ruby - 如何创建一个返回第 n 个素数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27564265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com