前提・実現したいこと
指定した自然数(max)のうち約数が指定した数(hit)ある計算をするプログラムを作りました。
ですが、とても遅いと感じもっとはやくできないのかと思いました。
該当のソースコード
import sys, time max = 114514 count = 0 count1 = 0 hit = 13 seikai = [] start = time.time() print(str(max) + "つのうちの、約数が" + str(hit) + "つある数を調べます") def keisan(): global count global count1 count += 1 for i in range(1,count): if count % i == 0: count1 += 1 while not count == max: if not count1 == hit - 1: print(str(count) + "は" + str(count1) + "のため再計算します") count1 = 0 keisan() else: print(str(count) + "は正解です") seikai.append(count) count1 = 0 keisan() else: if not seikai: print("正解はありませんでした") else: elapsed_time = time.time() - start print ("elapsed_time:{0}".format(elapsed_time) + "[sec]") print("終了しました\n以下が正解です" + str(seikai))
試したこと
Numbaを使用しようとしましたが、global変数を使っているためエラーが出てだめでした。
前提として、Python3でお願いします。何か無駄な部分等あればご教授よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー