我刚开始学习python和系统编程。对于家庭作业,我需要找到并打印第 n 个素数。我写了下面的代码 - 我可以找到一个小于或等于 n 的素数列表,但是,我不知道如何从我创建的列表中打印第 n 个素数。我不断收到索引错误:列表索引超出范围。
我相信我错过了一些东西。有人可以看看我的代码并就如何修复它给我一些指导吗?非常感谢您的帮助。谢谢你。
import sys
import math
def s_prime(n):
is_prime=list(range(n+1))
for i in range(2, int(n**0.5)+1):
if is_prime[i]:
for j in range(i**2,n+1,i):
is_prime[j]=False
print 'Prime Value in Decimal: ', [x for x in is_prime[2:] if x]
x_list = [x for x in is_prime[2:] if x]
print x_list[n-1]
def main(argv):
input = int(sys.argv[1])
if input == 1:
print 2
elif input == 2:
print 3
else:
n = int(round(input*(math.log(input,2))))
s_prime(n)
if __name__ == "__main__":
main(sys.argv[1:])