Що потрібно знати:
По-перше, щасливі числа.
Щасливі номери генеруються так:
Візьміть усі натуральні числа:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...
Потім видаліть кожне друге число.
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39...
Тепер, 3в безпеці.
Видалити кожен 3-й номер:
1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49, 51, 55, 59...
Тепер, 7в безпеці.
Видаліть кожен 7-й номер.
Продовжуйте та видаляйте кожне nчисло, де nє першим безпечним числом після усунення.
Остаточний список безпечних номерів - це щасливі номери.
Нещасливі числа складаються з окремих списків чисел, які є [U1, U2, U3... Un].
U1 це перший набір номерів, вилучених із щасливих "кандидатів", тож вони:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20...
U2 видалено другий набір номерів:
5, 11, 17, 23, 29, 35, 41, 47, 53, 59...
І так далі і так далі ( U3третій список, U4четвертий і т.д.)
Виклик:
Ваше завдання полягає в тому, щоб отримати два входи mі nзгенерувати mчисло у списку Un.
Приклади входів і виходів:
(5, 2) -> 29
(10, 1) -> 20
Технічні характеристики:
- Ваша програма повинна працювати
mдо1e6таnдо100.- Вам гарантовано, що обидва
mіnє додатними цілими числами. - Якщо вам цікаво,
U(1e6, 100)=5,333,213,163. (Дякую @pacholik!)
- Вам гарантовано, що обидва
- Ваша програма повинна обчислити це протягом 1 дня на розумному сучасному комп’ютері.
Це код-гольф , тому найкоротший код у байтах виграє!
PS: Було б добре, якби хтось придумав загальну формулу їх створення. Якщо у вас є формула, будь ласка, вкажіть її у своїй відповіді!
(1e6,1e6)?
n=1випадку? Оскільки це особливо - для всіх інших випадків, індекс наступного щасливого числа на основі 0 n-1.