結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
るこーそー
|
| 提出日時 | 2024-09-24 15:56:04 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,120 ms / 5,000 ms |
| コード長 | 647 bytes |
| コンパイル時間 | 245 ms |
| コンパイル使用メモリ | 82,436 KB |
| 実行使用メモリ | 86,328 KB |
| 最終ジャッジ日時 | 2024-09-24 15:56:14 |
| 合計ジャッジ時間 | 8,336 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
import sys
sys.setrecursionlimit(10**5)
def Prime(n):
prime=[True]*(n+1)
prime[0],prime[1]=False,False
for p in range(2,n+1):
if not prime[p]:continue
for np in range(2*p,n+1,p):
prime[np]=False
prime_list=[]
for p in range(n+1):
if prime[p]:
prime_list.append(p)
return prime_list
n=int(input())
P=Prime(n)
dp=[-1]*(n+1)
def grundy(x):
if dp[x]!=-1:return dp[x]
if x==2 or x==3:return 0
s=set()
for p in P:
if x-p>=2:
s.add(grundy(x-p))
res=0
while res in s:
res+=1
dp[x]=res
return res
print('Win' if grundy(n) else 'Lose')
るこーそー