РСОП XXX 2018 8

L. DIVISORS 54

Условие


L. DIVISORS
---
Дадена е редица от N различни цели положителни числа. Напишете програма, която да сортира всички ненаредени множества от две различни числа на редицата във възходящ ред на броя на техните общи делители. Ако броят на общите делители на две двойки е равен, по-напред в сортирането да е двойката, в която по-малкото число е по-малко, а ако и то е еднакво в двете двойки, по-напред в сортирането да е двойката, в която по-голямото число е по-малко.

Вход: На първия ред на стандартния вход ще бъде зададен броят на тестовите примери. Всеки тестов пример започва с ред, съдържащ броя N на числата в редицата (1 ≤ N ≤ 300). На i-тия от следващите N реда ще бъде зададено поредното число Ki на редицата (1 ≤ Ki ≤ 100000000000000 = 1.0E+14).

Изход: За всеки тест програмата програмата трябва да изведе на отделни редове на стандартния изход всички различни ненаредени двойки числа на редицата, сортирани по указания по-горе начин. В рамките на един ред първо да се изведе по-малкото число от двойката, после по-голямото.

Примерен вход:
1
4
64
18
16
12

Примерен изход:
16 18
18 64
12 16
12 64
12 18
16 64