結果
問題 | No.308 素数は通れません |
ユーザー |
|
提出日時 | 2015-12-01 01:13:17 |
言語 | PyPy2 (7.3.15) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 847 bytes |
コンパイル時間 | 717 ms |
コンパイル使用メモリ | 76,716 KB |
実行使用メモリ | 75,964 KB |
最終ジャッジ日時 | 2024-09-14 05:39:46 |
合計ジャッジ時間 | 10,908 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 106 WA * 1 |
ソースコード
def suspect(a, e, k, n):a = pow(a, e, n)if a == 1: return Truefor _ in xrange(k):if a == n - 1: return Truea = a * a % nreturn Falsedef isprime(n):if n == 1: return Falsee = n - 1k = 0while e % 2 == 0:e /= 2k += 1if n < 2 ** 31:bases = [2, 3, 5, 7]else:bases = [2, 325, 9375, 28178, 450775, 9780504, 1795265022]for i in bases:if n != i and not suspect(i, e, k, n): return Falsereturn Trueans = [1,1,1,3,1,5,1,7,7,7,1,11,1,13,7,7,1,8,1,19,19,7,1,23,23,8,8,8,1,8,1,8,8,8,8,8,1,8,8,8,1,8,1,8,8,8,1,8,14,8,8,8,1,8,8,8,8,8,1,8,1,8,8,8,8,8,1,8,8,8,1,8,1,8,8,8,8,8,1,8,14,8,1,8,8,8,8,8,1,8,8,8,8,8,8,8,1,8,8]n = input()if n < 100:print ans[n - 1]else:if n % 8 != 1:print 8elif not isprime(n - 8):print 8elif n % 14 != 1:print 14elif not isprime(n - 14):print 14else:print 20