どもども、最近帰るのが遅くてお疲れなとある学生です。
というわけで、7問目書いていきましょう。
Problem_7.py
#素数を小さい方から6つ並べると2、3、5、7、11、13であり、6番目の素数は13である。
#10 001番目の素数を求めよ。
sosuu = []
k = 0
n = 1
while k != 10001:
n = n + 1
p = True
for i in range(2,n):
if n % i == 0:
p = False
break
if p == True:
sosuu.append(n)
k = k + 1
print(sosuu[-1])
解 104743
はい、私はこう書きました。
圧倒的脳筋です。
####解き方の解説をしていきます。
nとn未満のiを割って割り切れたらpをFalseにしてbreakでifを切る。割り切れなかったらsosuuに値を代入してkの値を+1する。この流れをkが10001になるまで繰り返し、kが10001になったらsosuuの最後の値を出力って感じです。
圧倒的計算量。圧倒的無駄!!ただ、これ以外に解法は1つ思いついたのですが、プログラムにできなかったです悲しみ。
でもまぁひとまずは、こんな感じですかね?もしわからないことやアドバイス等あればコメントしていただければと思います。
というわけで気が向いたら次も見ていってください。よろしくお願いします。