結果
| 問題 |
No.2721 "Don't say N" Game
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-04-14 21:46:00 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 72 ms / 2,000 ms |
| コード長 | 1,031 bytes |
| コンパイル時間 | 161 ms |
| コンパイル使用メモリ | 82,180 KB |
| 実行使用メモリ | 72,832 KB |
| 最終ジャッジ日時 | 2024-10-04 01:25:01 |
| 合計ジャッジ時間 | 1,335 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 5 |
ソースコード
import typing
import sys
from collections import defaultdict
input = lambda: sys.stdin.readline().strip()
inf = 10**18
mod = 998244353
# import pypyjit
# pypyjit.set_param('max_unroll_recursion=-1')
# sys.setrecursionlimit(10**6)
def primer(N):
l = []
cnt = 0
while N%2 == 0:
cnt += 1
N //= 2
if cnt:
l.append((2, cnt))
cnt = 0
while N%3 == 0:
cnt += 1
N //= 3
if cnt:
l.append((3, cnt))
for i in range(6, inf, 6):
if (i-1)*(i-1) > N:
break
cnt = 0
while N%(i-1) == 0:
cnt += 1
N //= (i-1)
if cnt:
l.append((i-1, cnt))
if (i+1)*(i+1) > N:
break
cnt = 0
while N%(i+1) == 0:
cnt += 1
N //= (i+1)
if cnt:
l.append((i+1, cnt))
if N > 1:
l.append((N, 1))
return l
def solve():
N = int(input())
# 1つでも奇数の指数がある->先行
for p, c in primer(N):
if c%2 == 1:
print('K')
return
print('P')
def main():
t = int(input())
for _ in range(t):
solve()
main()