結果
| 問題 | No.308 素数は通れません |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-12-01 02:42:06 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 165 ms / 1,000 ms |
| コード長 | 411 bytes |
| 記録 | |
| コンパイル時間 | 276 ms |
| コンパイル使用メモリ | 77,652 KB |
| 最終ジャッジ日時 | 2025-12-03 18:07:29 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 107 |
ソースコード
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