Что нужно знать:
Во-первых, счастливые числа.
Счастливые числа генерируются так:
Возьмите все натуральные числа:
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безопасно.
Удалить каждый третий номер:
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.