Правая truncatable главным является простым , где каждый префикс является первичным (в базе 10). Левый truncatable премьер как раз наоборот, где каждый постфикс является простым (штрихи , которые начинаются с 0 не допускаются). Обе эти последовательности конечны (имеется только 83 правосторонних, в то время как 4260 левых усеченных).
Вам нужно написать программу, которая принимает в качестве входных данных одно число и выдает n- ное усеченное справа число. Однако, когда программа читается в обратном порядке , она должна создавать n- ное усеченное слева простое число.
Чтобы упорядочить программу в обратном направлении, мы разбиваем программу на слова, затем меняем порядок слов в обратном порядке. Слово может состоять из любого количества символов.
Например, если ваша программа была следующей:
hello world
1234567890
Следующие все будут разрешены как возможные обратные меры:
Разделение на каждого персонажа:
0987654321
dlrow olleh
Расщепление по пробелам:
1234567890
world hello
Расщепление произвольно (трубы добавлены для ясности):
hel|lo w|orld
1|23456|7|8|90
908723456orld
1lo whel
При расположении вашей программы в обратном направлении все пробелы должны учитываться и переворачиваться, как и любой другой символ.
Форвард тестовых входов:
1: 2
2: 3
21: 379
60: 239933
83: 73939133
Обратные тестовые входы:
1: 2
2: 3
39: 647
187: 29173
4260: 357686312646216567629137
Программы должны быть в состоянии запустить в течение разумного количества времени (менее минуты)
Это код-гольф , поэтому выигрывает программа с наименьшим количеством байтов!
источник
lo w
естьorld\n1
. Новая строка не заканчивает атомОтветы:
Желе ,
2623 байтаВперед
Попробуйте онлайн!
слова
Ñ
¶
p
9
¶
7ÆR2ĿV€$ÆPÐf$ÐĿFị@
назад
Попробуйте онлайн!
слова
7ÆR2ĿV€$ÆPÐf$ÐĿFị@
¶
9
p
¶
Ñ
Как это работает
Все программы Jelly состоят из ссылок (функции, выполняемые Jelly), которые разделены переводом строки или тачкой (
¶
). Последний из них является главной ссылкой ; он вызывается автоматически при запуске программы.Форвардная программа работает следующим образом.
Программа назад делает почти то же самое; Есть только два отличия.
Основная ссылка теперь
Ñ
, которая просто называет ссылку под ней (обтекание), т. Е. Главную ссылку программы пересылки.9p
вместоp9
возврата обратного декартова произведения.источник
Python 2,
143139 байтСостоит из пяти частей:
I=1
a={2}…[~-n]
I=0
Таким образом, разворот просто перевернул значение
I
.объяснение
Функция
f
выполняет рекурсивный поиск либо усекаемых слева простых чисел (LTP), либо усекаемых справа простых чисел (RTP), в зависимости от значения globalI
. Эти значения добавляются в наборa
. Затемlambda n:sorted(a)[~-n]
возвращаетn
-ое.Давайте определим лист как LTP, RTP, некоторую ненулевую цифру + LTP или RTP + некоторую ненулевую цифру. Это все значения, которые
f
когда-либо захотят проверить на простоту.Я разработал тест псевдопраймера Ферма, который работает для всех листьев:
(63973 - число Кармайкла .)
Если этот тест возвращает значение true, его
z
следует добавить в набор,a
и мы должны продолжитьstr(z)
. Ответственный бит кода:Во-первых, мы хотим разобраться с этим делом
z == 2
. Мы делаем это, просто уклоняясь от этого, и жестко программируем,2
когда мы изначально определяемa
! (РЕДАКТИРОВАТЬ: И ничего вредного не произойдет, если мы также поймаемz == 1
.) Таким образом, мы можем предположить, чтоz ≥ 3
сейчас.Я перевел некоторые «и» в цепочечное сравнение с коротким замыканием: первые три сравнения должны быть успешными раньше
a.add(z)
иf(u)
когда-либо оцениваться. Вот все их роли:Подтверждения
u=[d+s,s+d][I]
→u=d[I:]+s+d*I
;z==2
→z<3
и трюк мода 91 ). Благодаря!источник