プログラミング

【Python3】100以下の素数を列挙するプログラムを作ってみた

本記事ではPython3を使って、100以下の素数を列挙するプログラムを紹介しています。

素数を列挙するプログラム

素数を列挙するプログラムのソースコード

factors = [2,3]
for num in range(2,100):
    i=2
    while i <= num:
        if (num%i==0):
            break
        elif(i == int(num / 2)):
            factors.append(num)
        i+=1
print(factors)

素数列挙プログラムの内容

判定したい数値の1/2以下の数値で順番に余りを見て、余りが0になったら素数ではないので「break」する

判定したい数値の1/2と変数 i の値が等しくなったら、その数は素数なので、リスト factors に数値を代入する。

注意点

elif(i == int(num / 2)):
   factors.append(num)

上記の部分では「num/2」をint型でキャストしている。なぜかというと「num/2」をすると結果が、「4.0」のように表示されます。それに対して変数 i は「4」のようになっているので、if文で「if (i == num/2)」としても等しいとは判断されなくなっています。

なので、このプログラムでは「num/2」をint型でキャストしています。

「num/2」をint型でキャストすると、結果が「4」のように変数 i と同じように表示されるのでうまくいくようになります。