結果

問題 No.308 素数は通れません
ユーザー matsu7874matsu7874
提出日時 2015-12-28 02:39:09
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
RE  
実行時間 -
コード長 666 bytes
コンパイル時間 88 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 10,880 KB
最終ジャッジ日時 2024-09-19 07:33:58
合計ジャッジ時間 5,970 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other RE * 107
権限があれば一括ダウンロードができます

ソースコード

diff #

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())
i=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][i])
else:
    if N % 8 == 1 and miller_rabin_test(N - 8):
        print(14)
    else:
        print(8)
0