前提・実現したいこと
python3でnのn乗の和を生成し、それらが素数であるかを調べています
発生している問題・エラーメッセージ
以下のコードで upper を31以上にすると、31以上の結果がspyderのコンソール画面に表示されません 30までの結果は出力されます。
該当のソースコード
python3
1import time 2import math 3 4 5not_prime = [0, 2, 4, 5, 6, 8] 6 7total = 0 8lower = 1 9upper = 30 10 11 12start = time.time() #時間の測定 13 14 15for n in range(lower,upper): 16 total += pow(n,n) 17 num_array = list(map(int, str(total))) #各位の和 18 19 if total % 10 in not_prime: #2、5の倍数を除外 20 print(total) 21 continue 22 23 if sum(num_array) % 3 == 0: #3の倍数を除外 24 print(total) 25 continue 26 27 for i in range(3, int(math.sqrt(total)) ,2): #√nまで奇数で割っていく 28 if total % i == 0: 29 print(total) 30 break 31 else: 32 print(str(total) + " 素数") 33 34 35total_time = time.time() - start 36print("かかった時間: {:.4f} 秒".format(total_time)) 37
試したこと
print関数に flush = True を加えてみましたが変わりませんでした
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/19 12:01
2019/09/20 08:36