私は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:])