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