結果
| 問題 | No.7 プライムナンバーゲーム |
| コンテスト | |
| ユーザー |
cleantted
|
| 提出日時 | 2016-10-09 01:45:18 |
| 言語 | Python3 (3.14.3 + numpy 2.4.4 + scipy 1.17.1) |
| 結果 |
AC
|
| 実行時間 | 1,138 ms / 5,000 ms |
| コード長 | 716 bytes |
| 記録 | |
| コンパイル時間 | 349 ms |
| コンパイル使用メモリ | 20,704 KB |
| 実行使用メモリ | 15,356 KB |
| 最終ジャッジ日時 | 2026-04-17 17:34:46 |
| 合計ジャッジ時間 | 9,787 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
N = int(input())
memo = [-1] * (N+1) #-1 -> (not yet), 0 -> win, 1 -> Lose
prime = []
memo[0] = 0 #0 -> win
memo[1] = 0 #0 -> win
#素数列を作る(=prime)
for n in range(2,N+1):
flag = True
for m in range(2, n):
if n%m == 0:
flag = False
break
if flag: prime.append(n)
def res(i):
if memo[i] != -1: return(memo[i]) #計算済なら、それを返す
else:
flag = 1
for p in prime:
if p < i: flag = flag * (1 - res(i-p))
else: break
memo[i] = flag #計算結果をmemoに入れる
return(flag)
for i in range(N):
res(i)
if res(N) == 0: print("Win")
else: print("Lose")
cleantted