Другая последовательность, другая проблема. *
Определение
Простое p
в этой последовательности, давайте назовем его A
, если для каждой цифры d
в p
десятичном разложении в России вы заменяете d
на d
копии, d
а полученное целое число остается простым; нули не допускаются.
Например, 11
тривиально в этой последовательности (это, кстати, первое число). Следующим в последовательности является 31
, потому что 3331
также является простым; потом 53
потому что 55555333
тоже простое и тд.
Вызов
С учетом ввода n
, возврата A(n)
, то есть n
элемента в этой последовательности.
Примеры
Вот первые 20 условий, чтобы вы начали. Это A057628 на OEIS.
11, 31, 53, 131, 149, 223, 283, 311, 313, 331, 397, 463, 641, 691, 937, 941, 1439, 1511, 1741, 1871
Это означает A(0) = 11
, A(1) = 31
и т.д., при использовании нулевой индексации.
правила
- Вы можете выбрать индексирование на основе нуля или единицы; пожалуйста, укажите в своем ответе какой.
- Вместо того, чтобы возвращать только
n
th-й элемент, вы можете вместо этого выбрать возврат первыхn
членов. - Вы можете предположить, что ввод / вывод не будет больше, чем родной целочисленный формат вашего языка; однако простое число с повторяющимися цифрами может быть больше, чем родной формат вашего языка, поэтому это необходимо учитывать.
- Например,
1871
последний номер примеров имеет соответствующее простое число18888888877777771
, которое немного больше стандартного INT32. - Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Вывод может быть на консоль, возвращен из функции, отображен во всплывающем окне с предупреждением и т. Д.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
* Если честно, я придумал первые несколько терминов последовательности, просто поиграв с некоторыми числами, а затем отправился в OEIS, чтобы получить остальную часть последовательности.
источник
169
само по себе не простое, это так13 * 13
.Ответы:
Шелуха , 15 байт
Попробуйте онлайн!
Эрик Outgolfer сохранил байт. Использование
ṗ
вместо того,εp
чтобы сохранить другой байт, но это делает программу настолько медленной, что время даже для n = 2.источник
ṗ
переводчика, это безумие, потому что это медленнее, чем поиск всех основных факторов ...05AB1E ,
1413 байт-1 байт благодаря Emigna !
Попробуйте онлайн!
объяснение
источник
Желе ,
1814 байтовПопробуйте онлайн!
Мистер Xcoder: -1 байт (все логично)
Эрик Outgolfer: -2 байта (одна строка вместо двух)
HyperNeutrino: -1 байт (вернуть первые n элементов последовательности)
объяснение
Редактировать: первоначально представил ответ, который включал числа с 0 в десятичном представлении, что специально не допускается.
источник
Wolfram Language (Mathematica) , 100 байт
Попробуйте онлайн!
Джонатан Фрех спас 3 байта
и -7 байтов от JungHwan Min
-15 байтов от Мартина Эндера
также благодаря Дженни Мэти
источник
Алиса ,
7270666256 байтСпасибо Лео за сохранение 5 байтов.
Попробуйте онлайн!
Использует ввод на основе 1.
объяснение
Опрятный гольфы трюк здесь (несмотря на то, что сохраняется только несколько байт), что я использую тест на простоту , которая дает
0
для композитной п дляn
для не композитного п . Таким образом, нам не нужно использовать результат непосредственно в условном выражении, но мы можем передать его прямо следующей части, которая проверяет, что входные данные не содержат нулей.источник
Python 2 , 130 байт
Попробуйте онлайн!
Python 2 ,
195179167140138136135134 байтаxrange
вместоrange
, таким образом, обходаMemoryError
и сжатие простой функции; улучшение подсчета целочисленных индексов.|
для сохранения байтовor
.~-
вместо0**
инвертирования существования нуляj
,&
за которым следует истинное логическое значение, изолирует логическое свойство этого значения.~-A&B&C
(эквивалентно(not A) and B and C
) сA, B, C
булевыми значениямиA<B==C
.Попробуйте онлайн! (1-индексированных)
объяснение
Определяет основную функцию,
f
которая принимает целочисленный индекс,n
и заданное по умолчанию заданное значениеj
, текущий кандидат последовательности (предназначенный9
для повышения производительности при сохранении размера программы) и функцию первичной проверки.До тех пор, пока
n
он не равен нулю,n
запись в -ой последовательности еще не найдена. Таким образомj
, увеличивается иn
уменьшается на единицу, еслиj
это число, которое удовлетворяет требуемым свойствам.Когда цикл заканчивается,
j
происходитn
запись -ой последовательности и, таким образом, печатается.источник
Pyth , 21 байт
Попробуй это здесь!
Довольно длинный, так как Pyth не имеет встроенного десятичного расширения .
.f
), которые:.AKjZT
) и (&
) ...*VK`Z
), соединенные вместе и преобразованные в целое число (ss
), являются простыми (P_
) и (&
) ...P_
).источник
e
согласно новой поправке к правилу.Perl 6 , 51 байт
Попробуйте онлайн!
grep {...}, 2..*
фильтрует бесконечную последовательность натуральных чисел, начиная с 2, используя функцию предиката между фигурными скобками.(...)[$_]
индексирует в этот отфильтрованный список, используя аргумент функции$_
.!/0/
отфильтровывает числа, содержащие нулевую цифру.S:g/./{$/ x $/}/
повторяет каждую цифру в десятичном расширении номера теста.is-prime $_ & S:g/./{$/ x $/}/
вызывает встроеннуюis-prime
функцию с соединением «and-junction»$_
, номером теста и номером, полученным в результате копирования его цифр. Функция вернет true, если оба члена и-соединения являются простыми.источник
J, 81 байт
Это одна из тех ситуаций, для которых я еще не нашел хорошего J-решения.
Тем не менее, я публикую это в надежде узнать что-то новое.
f
говорит нам, является ли данное число "простым числом повторяющихся цифр". Разбивается следующим образом:И, наконец, главный Do ... Хотя глагол с его надоедливым, на первый взгляд неизбежным образцом, который возникает из-за того, что нам нужно использовать список для хранения нашего прогресса, который требует регистров как «текущего простого», так и «найденного до сих пор» , поскольку наш левый аргумент уже используется для хранения условия остановки, т
n
. е . Это означает, что мы должны использовать много ценных байтов для простой задачи определения аргументов ([
и]
) и распаковки нашего списка из 2 элементов ({.
и{:
):Попробуйте онлайн!
источник
f
вспомогательной функцией, заключенной в скобки. Кроме того, я попробовал свои силы в игре в гольф вспомогательной функции и придумал1 p:('x',~"."0#])&.":
, что, к сожалению, не исключает простых чисел с «0» в них. У тебя есть мысли? Это также должно иметь'x',~
часть, чтобы получить дополнительную точность ...(((0>.-)((*&(1&p:)0&e.|10#.#~),.&.":))([,(+*)~)])/^:_@,&2
, используйте10x
для расширения диапазона, иначе n = 15 пропустит 937