You are on page 1of 1

def solve(a):

n = len(a)

# Tạo một tập chứa các số lớn hơn 1


large_set = set()

# Tạo tập chứa các số b và c


b = []
c = []

# Sắp xếp mảng a giảm dần


a.sort(reverse=True)

# Duyệt qua từng phần tử trong mảng a


for num in a:
# Nếu num đã xuất hiện trong tập chứa các số lớn hơn 1, thì đưa num vào tập
c
if num in large_set:
c.append(num)
else:
# Thêm tất cả các ước của num vào tập chứa các số lớn hơn 1
i = 2
while i * i <= num:
if num % i == 0:
large_set.add(i)
large_set.add(num // i)
i += 1

# Đưa num vào tập b


b.append(num)

# Kiểm tra nếu cả tập b và tập c đều không rỗng thì in kết quả
if b and c:
print(len(b), len(c))
print(" ".join(str(x) for x in b))
print(" ".join(str(x) for x in c))
else:
print("-1")

# Đọc số lượng test cases


t = int(input())

for _ in range(t):
# Đọc độ dài mảng a
n = int(input())

# Đọc mảng a
a = list(map(int, input().split()))

# Gọi hàm solve để giải quyết cho test case hiện tại
solve(a)

You might also like