Ctrl K

Наименьший сосед по OR

Лёгкая
Дан список простых чисел primes. Для каждого p найдите наименьшее неотрицательное целое a, такое что побитовое ИЛИ a и a + 1 равно p: a | (a + 1) == p Если такого a нет, запишите -1. Верните ответы в том же порядке, что и числа в primes.
Пример 1
primes=[5, 19] → [4, 17]

4 OR 5 = 5, а меньшие числа не подходят. Для 19 (10011) подходит 17 (10001): 17 OR 18 = 19.

Пример 2
primes=[2, 3] → [-1, 1]

a OR (a + 1) всегда нечётно, поэтому для 2 ответа нет: -1. Для 3 подходит 1: 1 OR 2 = 3.

Пример 3
primes=[31, 23] → [15, 19]
Ограничения
  • 1 ≤ len(primes) ≤ 100
  • 2 ≤ primes[i] ≤ 1000
  • Каждое primes[i] — простое число
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧисло без пары ЛёгкаяПотерянный билет ЛёгкаяДвойная бирка и пропавшая ЛёгкаяЗеркало и негатив ЛёгкаяКратно пяти на каждом шаге Лёгкая
загружаем Python…
Вход
primes=[5, 19]
Ожидается
[4, 17]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 126 тестов на сервере, включая скрытые.