Давайте определим последовательность. Мы скажем, что - это наименьшее число , которое имеет следующие свойства:
и взаимно просты (они не имеют общего множителя)
не появляется раньше в последовательности
В отличие от большинства последовательностей домен и диапазон нашей последовательности являются целыми числами больше 1.
Давайте посчитаем первые пару терминов.
должно быть не менее 4 , но 4 и 2 имеют коэффициент 2, поэтому должно быть 5 .
должно быть не менее 5, но 5 взято , поэтому оно равно как минимум 6 , но 6 делит множитель с 3, поэтому оно должно быть не менее 7 , 7 удовлетворяет всем трем требованиям, таким образом, .
- 2 Делит фактор
- 3 Слишком близко
- 4 Слишком близко
- 5 Слишком близко
- 6 Делит фактор
- 7 Снято (3)
- 8 Делит фактор
- 9 это хорошо
- 2 это хорошо
задача
В этом задании вы должны написать программу, которая принимает число больше 1 и возвращает .
Это вопрос по коду-гольфу, поэтому ответы будут оцениваться в байтах, при этом меньшее количество байтов будет лучше.
Тестовые случаи
Вот первые пару членов последовательности (они, конечно, 2 проиндексированы):
5,7,9,2,11,3,13,4,17,6,19,8,23,22,21,10,25,12,27,16,15,14
Бонус Забавный факт
Как доказал Роберт Исраэль на Math.se ( ссылка ), эта последовательность является собственной обратной, что означает, что для всех n.
OEIS
Задав этот вопрос, я отправил эту последовательность в OEIS, и через несколько дней она была добавлена.
Ответы:
Haskell , 61 байт
Попробуйте онлайн!
Я довольно новичок в Haskell, поэтому любые советы по игре в гольф подойдут.
Спасибо Wheat Wizard за 2 байта и nimi за 4 байта
Объяснение:
источник
Алиса , 42 байта
Попробуйте онлайн!
объяснение
Это стандартный шаблон для программ, которые принимают число в качестве входных данных и выводят число, измененное для размещения 1 в стеке ниже входного числа.
Основная часть программы размещает каждый номер
k
в слотеa(k)
на ленте. Внутренний цикл вычисляет a (k), а внешний цикл повторяется по k, пока не будет вычислено a (n).источник
VB.NET (.NET 4.5), 222 байта
Я должен был свернуть свой собственный GCD. Я также не мог понять, как заставить его не быть целой функцией.
GCD всегда> = 1, поэтому нужно только игнорировать 1
Устранено короткое замыкание в гольфе, потому что оно короче
Un-golfed
источник
Mathematica, 111 байт
Попробуйте онлайн! 2..23 (режим дальности)
Попробуйте онлайн! или 150 (разные значения)
источник
Japt , 33 байта (не конкурирует?) †
Попробуйте онлайн!
† Я исправил ошибку в интерпретаторе Japt во время работы над этим решением. Этот мета-пост год назад считает этот ответ неконкурентным, но этот новый мета-пост требует большей свободы в этом. Несмотря на это, я потратил слишком много времени на это, чтобы отменить это.
источник
05AB1E , 26 байт
°
T*
Объяснение:
источник