結果
問題 | No.7 プライムナンバーゲーム |
ユーザー |
![]() |
提出日時 | 2017-12-01 11:24:27 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 449 ms / 5,000 ms |
コード長 | 889 bytes |
コンパイル時間 | 184 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-10-01 16:07:37 |
合計ジャッジ時間 | 3,891 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
N = int(input()) #N'を2,3にするような素数があれば勝ち #Nまでの素数の判定 is_prime=[True for i in range(N+1)] prime_list=[] for i in range(2,N+1): if is_prime[i]==False: continue prime_list.append(i) i_mul=i+i while(i_mul<N+1): is_prime[i_mul]=False i_mul+=i # print(is_prime) # print(prime_list) #勝者 #0:どちらでも 1:手番 2:後手番 winner = [0 for i in range(N+1)] winner[0]=1 winner[1]=1 for i in range(2,N+1): win_flag=False # print(i) for prime in prime_list: if prime>i: break if winner[i-prime]==2: # print('prime',prime) winner[i]=1 win_flag=True break if win_flag==False: #すべての手で次の手によって負けるとき winner[i]=2 # print(winner) ans='Win' if winner[N]==1 else 'Lose' print(ans)