結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2014-11-05 20:34:21 |
| 言語 | Python2 (2.7.18) |
| 結果 |
AC
|
| 実行時間 | 276 ms / 5,000 ms |
| コード長 | 726 bytes |
| コンパイル時間 | 169 ms |
| コンパイル使用メモリ | 6,912 KB |
| 実行使用メモリ | 6,912 KB |
| 最終ジャッジ日時 | 2024-10-01 15:27:50 |
| 合計ジャッジ時間 | 2,721 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
from itertools import ifilter, islice
def gen_odd():
n = 3
while True:
yield n
n += 2
def iprimes():
yield 2
g = gen_odd()
while True:
prime = g.next()
s_prime = prime * prime
ps = []
while s_prime != prime:
yield prime
ps.append(prime)
prime = g.next()
pred = lambda x, ps = ps: all(x % p for p in ps)
g = ifilter(pred, g)
n=input()
primes=[]
for i in iprimes():
if i > n: break
primes.append(i)
w=[False]*(n+1)
for c in range(2,n+1):
if w[c]==False:
for i in [j for j in primes if j+c<=n]:
w[i+c]=True
print "Win" if w[n] else "Lose"