結果
| 問題 |
No.1611 Minimum Multiple with Double Divisors
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-07-22 12:33:08 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 813 bytes |
| コンパイル時間 | 164 ms |
| コンパイル使用メモリ | 82,116 KB |
| 実行使用メモリ | 99,456 KB |
| 最終ジャッジ日時 | 2024-07-17 21:13:36 |
| 合計ジャッジ時間 | 7,018 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | -- * 2 |
| other | TLE * 1 -- * 36 |
ソースコード
from copy import deepcopy
def factorization(n):
arr = []
temp = n
for i in range(2, int(-(-n**0.5//1))+1):
if temp%i==0:
cnt=0
while temp%i==0:
cnt+=1
temp //= i
arr.append([i, cnt])
if temp!=1:
arr.append([temp, 1])
if arr==[]:
arr.append([n, 1])
return arr
T = int(input())
P = []
for i in range(2,100000):
flg = True
for j in range(2,int(i**0.5)+1):
if i%j == 0:
flg = False
break
if flg:
P.append(i)
for _ in range(T):
X = int(input())
F = factorization(X)
P_cp = deepcopy(P)
n = 10**18
for i in range(len(F)):
f = F[i][0]
if f == 1:
continue
m = F[i][1]
n = min(n,f**(m+1))
P_cp.remove(f)
n = min(n,P_cp[0])
print(X*n)