結果
問題 | No.7 プライムナンバーゲーム |
ユーザー |
![]() |
提出日時 | 2018-12-16 02:06:56 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 296 ms / 5,000 ms |
コード長 | 767 bytes |
コンパイル時間 | 120 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 11,136 KB |
最終ジャッジ日時 | 2024-10-01 16:17:00 |
合計ジャッジ時間 | 2,879 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
import math def isprime(x, prime): res = True sq = math.sqrt(x) for i in range(2, len(prime)): if prime[i] > sq or prime[i] == 0: break if x % prime[i] == 0: res = False break return res n = int(input()) prime = [0] * n prime[0] = 2 prime[1] = 3 pnum = 2 for x in range(6, n + 1, 6): x1 = x - 1 x2 = x + 1 if isprime(x1, prime): prime[pnum] = x1 pnum += 1 if isprime(x2, prime): prime[pnum] = x2 pnum += 1 win = [False] * (2 * n + 1) los = 2 for i in range(2, n): if win[i]: continue los = i for p in prime: if p == 0: break win[p + los] = True if win[n]: print('Win') else: print('Lose')