結果

問題 No.308 素数は通れません
コンテスト
ユーザー titia
提出日時 2026-06-28 04:41:09
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,448 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 381 ms
コンパイル使用メモリ 85,632 KB
実行使用メモリ 133,352 KB
最終ジャッジ日時 2026-06-28 04:41:28
合計ジャッジ時間 10,404 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 57 WA * 50
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

x=10**6   

L=1000

Primelist=[i for i in range(x+1)]
Primelist[1]=0 # 1は素数でないので0にする.
 
for i in Primelist:
    if i>L:
        break
    if i==0:
        continue
    for j in range(2*i,x+1,i):
        Primelist[j]=0

Primes=[Primelist[j] for j in range(x+1) if Primelist[j]!=0]

SP=set(Primes)

N=int(input())

if N<=10**6:
    for w in range(1,N+1):
        h=(N+w-1)//w

        MAP=[[0]*w for i in range(h)]
        MAP[0][0]=1
        Q=[(0,0)]
        r=N%w
        if r==0:
            r=w

        while Q:
            x,y=Q.pop()

            for z0,w0 in [(x+1,y),(x-1,y),(x,y+1),(x,y-1)]:
                if 0<=z0<h and 0<=w0<w:
                    if z0!=h:
                        if (z0*w+w0+1) in SP:
                            continue
                        else:
                            if MAP[z0][w0]==0:
                                MAP[z0][w0]=1
                                Q.append((z0,w0))
                    else:
                        if 0<=w0<r:
                            if (z0*w+w0+1) in SP:
                                continue
                            else:
                                if MAP[z0][w0]==0:
                                    MAP[z0][w0]=1
                                    Q.append((z0,w0))

        if MAP[h-1][r-1]==1:
            print(w)
            break
                            

else:
    print(4)
0