結果
| 問題 |
No.1611 Minimum Multiple with Double Divisors
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-03-05 18:54:17 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,603 ms / 2,000 ms |
| コード長 | 827 bytes |
| コンパイル時間 | 587 ms |
| コンパイル使用メモリ | 82,392 KB |
| 実行使用メモリ | 90,052 KB |
| 最終ジャッジ日時 | 2024-07-20 01:02:59 |
| 合計ジャッジ時間 | 20,016 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 37 |
ソースコード
T = int(input())
C = 10 ** 6
dat = [0] * C
prime = []
for i in range(2,C):
if dat[i] == 0:
prime.append(i)
for j in range(2 * i,C,i):
dat[j] = 1
from collections import defaultdict
for _ in range(T):
X = int(input())
d = defaultdict(int)
P = -1
u = X
for p in prime:
if X % p != 0:
P = p
break
while X % p == 0:
d[p] += 1
X //= p
num = 1
for v in d.values():
num *= (v + 1)
for j in range(2,p+1):
div = 1
t = j
for k in prime:
if k > p:break
count = 0
while j % k == 0:
count += 1
j //= k
div *= (d[k] + 1 + count)
if div == 2 * num:
print(t * u)
break