如何在ruby中获得一个简短的第n个素数代码

如何在ruby中获得一个简短的第n个素数代码,ruby,Ruby,我有以下在ruby中运行的代码: require'prime' $<.each{|x|p Prime.take(x.to_i).last} require'prime' $在Ruby中有不同的(可以说是更好的)方法来获取第n个素数,但是没有一种方法比这短得多。最后,如果不计算前n个素数,就无法计算第n个素数−1素数,我想这就是为什么Ruby让你做动作的原因。您可以在上面链接的重复问题上看到一些很好的解决方案 关于你的另一个问题: 是否有较短的输入 这取决于您的用例$在Ruby中获得第n个

我有以下在ruby中运行的代码:

require'prime'
$<.each{|x|p Prime.take(x.to_i).last}
require'prime'
$在Ruby中有不同的(可以说是更好的)方法来获取第n个素数,但是没有一种方法比这短得多。最后,如果不计算前n个素数,就无法计算第n个素数−1素数,我想这就是为什么Ruby让你做动作的原因。您可以在上面链接的重复问题上看到一些很好的解决方案

关于你的另一个问题:

是否有较短的输入

这取决于您的用例<代码>$在Ruby中获得第n个素数有不同的方法(可以说是更好的方法),但是没有一种方法短得多。最后,如果不计算前n个素数,就无法计算第n个素数−1素数,我想这就是为什么Ruby让你做动作的原因。您可以在上面链接的重复问题上看到一些很好的解决方案

关于你的另一个问题:

是否有较短的输入


这取决于您的用例<代码>$我需要迭代stdin中给出的多个数字n,而不是作为ScriptOK参数给出的n。正如我所写的,你的代码可以做到这一点。干杯(当然,如果你这样做的话,你可能想记住素数以提高性能,特别是如果你的输入有一个已知的上限。)我需要迭代stdin中给出的多个数字n,而不是作为ScriptOK的参数给出的n。正如我所写的,你的代码可以做到这一点。干杯(当然,如果您正在这样做,您可能希望记住性能的素数,特别是如果您的输入有已知的上限。)
require "prime"
n = STDIN.each_line.first.to_i
p Prime.take(n).last
require "prime"
n = ARGV[0].to_i
p Prime.take(n).last