Python (基本的なこと002、003)で作成したものです。
動かすには、matplotlib.pyplotなどのインポートが必要です。
・指定の数値がそれ未満の素数で割り切れるかを確認。
割り切れる場合は、次の数値へ。割り切れない場合は、指定の数値を素数として配列に入れる。
・始めと終わりで時間を取得し、プログラムにかかった時間を計測。
・最後にグラフを表示(横軸:素数、縦軸:素数の個数を素数定理の値 (x / ln x) で割った値)
■ 実行例
■ サンプルコード
import math
import time
import matplotlib.pyplot as mp
# START_NUM: start number, TRY_COUNT:numbers to be checked from start number
START_NUM = 2
TRY_COUNT = 1000000
primeNumArray = [2]
primeNumSize = [1]
primeNumSize_calc = [1]
start_time = time.time()
for var in range(START_NUM, START_NUM + TRY_COUNT):
num = var
flag = 1
for var2 in primeNumArray:
result = num % var2
if result == 0:
flag = 0
break
if flag == 1:
print(var)
primeNumArray.append(var)
primeNumSize_calc.append(len(primeNumArray)/(var/math.log(var)))
primeNumSize.append(len(primeNumArray))
mp.plot(primeNumArray, primeNumSize_calc, color="red")
end_time = time.time()
print("process_time:", len(primeNumArray), ":", end_time - start_time)
mp.grid()
mp.show()