ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

2167. Шифровка 5

Ограничение времени: 2.0 секунды
Ограничение памяти: 256 МБ
Штирлиц получил от штаба T чисел. «Шифровка», — подумал Мюллер. «Простые числа», — подумал Штирлиц. Но не всё так просто!
Для шифрования штаб использует побитовое исключающее «ИЛИ». Пусть есть два числа, представим их в двоичной записи. Тогда результатом этой операции будет число, каждый бит двоичной записи которого является результатом исключающего «ИЛИ» соответствующих позиций у данных двух чисел: для битов «0» и «0» или битов «1» и «1» результат равен «0», а для битов «0» и «1» или «1» и «0» — результат равен «1». Например, результатом побитового исключающего «ИЛИ» и у чисел 10012 и 01012 будет 11002.
Штаб берёт простое число и другое неотрицательное целое число (ключ шифрования), использует побитовое исключающее «ИЛИ» между ними, и таким образом получает результат. При этом ключи шифрования могут быть разными для разных чисел. Но есть одна проблема — Штирлиц забыл ключи шифрования штаба и поэтому не может расшифровать ни одно из чисел! Но, немного подумав, Штирлиц догадался, что может применить используемую штабом операцию ещё раз, чтобы получить простые числа. Теперь для каждого из чисел в послании ему нужно найти минимальный возможный ключ, операция с которым приведёт его к простому числу.
Мюллер уже на носу, поэтому Штирлиц попросил у Вас помощи с таким важным заданием.

Исходные данные

В первой строке дано целое число T — количество чисел в послании от штаба (1 ≤ T ≤ 105).
В следующих T строках дано по одному целому числу ai — числа из послания (0 ≤ ai ≤ 1 048 575).

Результат

Выведите T неотрицательных целых чисел, каждое в новой строке — наименьший ключ шифрования для каждого из зашифрованных чисел в порядке ввода.

Пример

исходные данныерезультат
3
5
6
1
0
1
2
Автор задачи: Вадим Баринов
Источник задачи: Уральская командная олимпиада по программированию 2022