LoginSignup
0
0

More than 3 years have passed since last update.

0.1ぐらいから始めるProjectEuler@python Problem 7

Posted at

どもども、最近帰るのが遅くてお疲れなとある学生です。
というわけで、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つ思いついたのですが、プログラムにできなかったです悲しみ。
でもまぁひとまずは、こんな感じですかね?もしわからないことやアドバイス等あればコメントしていただければと思います。
というわけで気が向いたら次も見ていってください。よろしくお願いします。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0