結果
| 問題 |
No.103 素因数ゲーム リターンズ
|
| コンテスト | |
| ユーザー |
AEn
|
| 提出日時 | 2023-03-14 14:52:02 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 441 ms / 5,000 ms |
| コード長 | 807 bytes |
| コンパイル時間 | 384 ms |
| コンパイル使用メモリ | 81,920 KB |
| 実行使用メモリ | 70,016 KB |
| 最終ジャッジ日時 | 2024-09-18 08:04:18 |
| 合計ジャッジ時間 | 12,592 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 20 |
ソースコード
import math
def sieve_of_eratosthenes(n):
prime = [True]*(n+1)
prime[0] = False
prime[1] = False
sqrt_n = math.ceil(math.sqrt(n))
for i in range(2, sqrt_n+1):
if prime[i]:
for j in range(2*i, n+1, i):
prime[j] = False
return prime
N = int(input())
M = list(map(int,input().split()))
grundy = [0]*(10**4+1)
p = sieve_of_eratosthenes(10**4)
prime = []
for i in range(len(p)):
if p[i]:
prime.append(i)
for i in range(2,10**4+1):
s = set()
for pp in prime:
if i%pp==0:
s.add(grundy[i//pp])
if i%(pp*pp)==0:
s.add(grundy[i//pp//pp])
g = 0
while g in s:
g += 1
grundy[i] = g
res = 0
for m in M:
res ^= grundy[m]
if res:
print('Alice')
else:
print('Bob')
AEn