Ctrl K

Суммы двух степеней

Средняя
Даны числа a, b и limit. Найдите все целые числа, не превосходящие limit, которые можно записать как a^i + b^j при каких-нибудь целых i ≥ 0 и j ≥ 0. Каждое такое число должно встретиться в ответе ровно один раз, даже если его можно получить несколькими способами. Порядок чисел в ответе любой.
Пример 1
a=2, b=5, limit=12 → [2, 3, 5, 6, 7, 9]

2 = 1 + 1, 3 = 2 + 1, 5 = 4 + 1, 6 = 1 + 5, 7 = 2 + 5, 9 = 8 + 1 = 4 + 5. Сумму 9 получают двумя способами, но в ответ она входит один раз.

Пример 2
a=1, b=4, limit=20 → [17, 2, 5]

Любая степень единицы равна 1, поэтому подходят только 1 + 1, 1 + 4 и 1 + 16.

Пример 3
a=7, b=3, limit=1 → []
Ограничения
  • 1 ≤ a, b ≤ 100
  • 0 ≤ limit ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПеремешать цифры до степени двойки СредняяУзлы сетки под кругами СредняяКуски поровну из гласных и согласных СредняяПростые числа на лучах сетки СредняяУравновешенные четвёрки с промежутками Средняя
загружаем Python…
Вход
a=2, b=5, limit=12
Ожидается
[2, 3, 5, 6, 7, 9]

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