結果
| 問題 |
No.1498 Factorization from -1 to 1
|
| ユーザー |
GER_chen
|
| 提出日時 | 2021-05-12 00:32:55 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 2,324 ms / 3,000 ms |
| コード長 | 813 bytes |
| コンパイル時間 | 157 ms |
| コンパイル使用メモリ | 82,528 KB |
| 実行使用メモリ | 96,464 KB |
| 最終ジャッジ日時 | 2024-09-22 07:06:44 |
| 合計ジャッジ時間 | 14,181 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 17 |
ソースコード
#y1498
def E_sieve(n):
Primes = []
if n > 1:
Primes.append(2)
l = (n-1)//2
Flag = [True]*l
for i in range(l):
p = 2*i+3
if not Flag[i]:
continue
Primes.append(p)
for i in range((p*p-3)//2, l, p):
Flag[i] = False
return Primes
P = E_sieve(100001)
Memo = {}
for _ in range(int(input())):
q = int(input())
if Memo.get(q, 0):
Ans = Memo[q]
else:
Ans = []
x = q**2+1
if q&1:
x //= 2
Ans.append(2)
for p in P:
if p**2 > x:
break
if not x%p:
while not x%p:
Ans.append(p)
x //= p
if x > 1:
Ans.append(x)
Memo[q] = Ans
print(*Ans)
GER_chen