本記事では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 と同じように表示されるのでうまくいくようになります。