結果
問題 | No.308 素数は通れません |
ユーザー |
![]() |
提出日時 | 2015-12-28 02:42:23 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 653 bytes |
コンパイル時間 | 70 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 10,752 KB |
最終ジャッジ日時 | 2024-09-19 07:34:17 |
合計ジャッジ時間 | 5,029 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 106 WA * 1 |
ソースコード
def miller_rabin_test(n): if n == 2: return True if n < 2 or n & 1 == 0: return False d = (n - 1) >> 1 while d & 1 == 0: d >>= 1 for a in [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41]: t = d y = pow(a, t, n) while t != n - 1 and y != 1 and y != n - 1: y = pow(y, 2, n) t <<= 1 if y != n - 1 and t & 1 == 0: return False return True N = int(input()) if N < 26: print([0,0,0,0,3,0,5,0,7,7,7,0,11,0,13,7,7,0,8,0,19,19,7,0,23,23][N]) else: if N % 8 == 1 and miller_rabin_test(N - 8): print(14) else: print(8)