100までの素数を出力付すプログラムです.素数を求めるアルゴリズムは「エラトステネスのふるい」です.整数の列があり,その中から素数の2以上の整数倍を消します.残ったものが素数になります.
import numpy as np
max_num = 100
num = [True for i in range(0, max_num+1)]
a = int(np.sqrt(max_num))
for p in range(2, a):
if num[p] == True:
m=2
while p*m <= max_num:
num[p*m] = False
m += 1
j=0
for i in range(2, max_num+1):
if num[i] == True:
j += 1
print(i, end='\t') if j%8 != 0 else print(i)
print()
以下に実行結果を示します.
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