2以上の素数を求めてみた | 海の見える家

海の見える家

努力して諦めなければ、必ず道があると信じて突き進みます。時を間違えなければ。頑張る時に頑張らなければ、努力は結実しないのです。

# coding: utf-8
# 範囲していした素数判定プログラム
#
# どの範囲まで素数を求めてリストとして出力するかの関数定義
def isprime(num):
    prime_number = [2] # 素数は2より大きいのは自明
    for i in range(3, num, 2): # 3からnumまで,偶数をスキップするループ
      prime = True
        for n in range(len(prime_number)):
          if prime_number[n]**2 > i: # 素数はその平方根未満より大きな数では割り切れないという性質を利用する
          # 該当すれば、ループを抜けて次の数字で割る演算処理
            break
          if i % prime_number[n] == 0:
          # これまで取得した素数で割って該当すれば素数ではないのでループを抜ける
            prime = False
            break
          if prime: # if prime == True と同じ表現
          # 新たな素数を取得すればリストの最後尾に追加する
            prime_number.append(i)
    print(prime_number) # リストprime_numberの要素を全て出力する

isprime(100) # どこまで判定するかの上で定義した関数呼び出し
# ここでは、実例として100までの素数を求める

===========================
出力結果
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

※追記※
Pythonは、TAB(タブ)で条件分岐やループ処理や関数定義などを行うのですが、
残念なことにブログでは、TABを認識してくれません。Pythonでは改行やインデントはコードの一部と見做します。
HTMLでの出力方法はあるのですが面倒なので、「 」これの半角をタグとして必要な分だけ反復ペーストしました。