結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-12-21 07:46:10 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 790 bytes |
| コンパイル時間 | 137 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 11,008 KB |
| 最終ジャッジ日時 | 2024-12-17 20:35:59 |
| 合計ジャッジ時間 | 1,370 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 17 |
ソースコード
n=int(input()) #プライムナンバーゲーム
#エラトステネスの篩
prime=[]
s=[1]*(n+1)
s[0]=s[1]=0
for i in range(2,n,2):
s[i]=0
for i in range(3,int(math.sqrt(n))):
for j in range(2,math.ceil(n/i)):
if s[i*j]==1:
s[i*j]=0
for i in range(n):
if s[i]==1:
prime.append(i)
winlose=[-1]*(n+1) #勝ち負けを記録するリスト +1が勝ち -1が負け
winlose[0],winlose[1]=1,1 #0,1は入力に無いが便宜上勝ちとする
for i in range(2,n+1):
for j in prime:
if i<j:
break
if winlose[i-j]==-1: #相手を負けにする状態することができる素数が一つでもあれば勝ち
winlose[i]=1
break
if winlose[-1]==1:
print("Win")
else:
print("Lose")