Олимпиадный тренинг

Задача . D. Два делителя


Вам заданы \(n\) целых чисел \(a_1, a_2, \dots, a_n\).

Для каждого \(a_i\) найдите два его делителя \(d_1 > 1\) и \(d_2 > 1\) такие, что \(\gcd(d_1 + d_2, a_i) = 1\) (где \(\gcd(a, b)\) — наибольший общий делитель \(a\) и \(b\)) или скажите, что такой пары нет.

Входные данные

В первой строке задано единственное целое число \(n\) (\(1 \le n \le 5 \cdot 10^5\)) — размер массива \(a\).

Во второй строке заданы \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(2 \le a_i \le 10^7\)) — массив \(a\).

Выходные данные

Ради ускорения вывода, выведите ответы в две строки по \(n\) чисел в каждой.

В первой и второй строках \(i\)-ми по счету числами выведите соответствующие делители \(d_1 > 1\) и \(d_2 > 1\) такие, что \(\gcd(d_1 + d_2, a_i) = 1\) или \(-1\) и \(-1\), если такой пары делителей нет. Если существует несколько подходящих ответов, выведите любой из них.

Примечание

Рассмотрим \(a_7 = 8\). У него есть \(3\) делителя больших, чем \(1\): \(2\), \(4\), \(8\). Не сложно заметить, что сумма любой пары делителей делится на \(2\), также как и \(a_7\).

Существуют и другие подходящие пары делителей \(d_1\) и \(d_2\) для \(a_{10}=24\), например, \((3, 4)\) или \((8, 3)\). Вы можете вывести любую из них.


Примеры
Входные данныеВыходные данные
1 10
2 3 4 5 6 7 8 9 10 24
-1 -1 -1 -1 3 -1 -1 -1 2 2 
-1 -1 -1 -1 2 -1 -1 -1 5 3

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя