Pythonで1秒ごとに素数を出力し続けるプログラム
今回はPythonを使って1秒ごとに素数を出力し続けるプログラムをご紹介していきたいと思います。
Pythonで1秒ごとに素数を出力し続けるプログラム
先にプログラムをご紹介いたします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
result = [] # 素数を入れるList for i in range(2, 10000): # 10000までの素数を調べる for j in range(2, i): # 素数かどうか確かめる数字未満の数字でループさせる if i % j == 0: # 割り切れたら素数ではないためbreak break elif j == i - 1: # 素数かどうか確かめる数字-1までに見つからなかった場合は素数を格納 result.append(i) else: # 割り切れない場合は引き続き処理を続ける pass import time import threading def worker(i): print(result[i]) # i番目のresultを出力 def scheduler(interval, f, wait = True): base_time = time.time() next_time = 0 i = 0 # 配列を0から始める while True: t = threading.Thread(target = f(i)) t.start() if wait: t.join() i += 1 # 配列の次の値を用意 next_time = ((base_time - time.time()) % interval) or interval time.sleep(next_time) scheduler(1, worker, False) |
前半部分は素数を計算してListに格納する処理、後半部分はその素数のListを1秒ごとに出力する処理になります。
1秒ごとに出力しながら素数を計算していっても良いのですが、素数が大きくなるにつれて計算の時間が増えてしまうため、このような構成にしました。
あまり実務では役立つことが少ないと思うので、趣味程度でご参考にしてみてください。
終わりに
今回はPythonを使って1秒ごとに素数を出力し続けるプログラムについてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません