結果

問題 No.308 素数は通れません
ユーザー kzyKT
提出日時 2015-12-01 02:42:06
言語 Python2
(2.7.18)
結果
AC  
実行時間 14 ms / 1,000 ms
コード長 411 bytes
コンパイル時間 326 ms
コンパイル使用メモリ 7,076 KB
実行使用メモリ 7,168 KB
最終ジャッジ日時 2024-11-27 18:07:41
合計ジャッジ時間 3,650 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 107
権限があれば一括ダウンロードができます

ソースコード

diff #

import random
def solve(n):
  d=n-1
  while d&1==0:
    d/=2
  for l in range(0,100):
    a=random.randint(1,n-2)
    t=d
    y=pow(a,t,n)
    while t!=n-1 and y!=1 and y!=n-1:
      y=(y*y)%n
      t*=2
    if y!=n-1 and t&1==0:
      return False
  return True
a=[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]
x=input()
if x<26:print a[x]
else:print 14 if (x-1)%8==0 and x%2 and solve(x-8) else 8
0