Primus-Orderus Простые числа


15

Кто они?

Простые числа Primus-Orderus (POP) являются простыми числами, которые содержат их порядок в последовательности простых чисел.
Таким образом, nthпростое число, чтобы быть POP, должно содержать все цифры nопределенного способа, который я объясню.

Примеры

Давайте проясним ситуацию: все цифры nдолжны появляться среди цифр POP в том же порядке, в котором они появляютсяn

6469thПрайм , 64679который является POP , поскольку она содержит все цифры 6469в правильном порядке.
1407647это POP, потому что это 107647thпростое число

14968819 - это POP (968819-е простое число). Так что это испытание НЕ OEIS (A114924)

1327 НЕ POP, потому что это 217thпростое число (цифры не в правильном порядке)

Соревнование

Вы угадали!
Учитывая целое число n, выведите nthPOP

Тестовые случаи

вход-> выход

1->17
3->14723    
5->57089
10->64553 
29->284833  
34->14968819

Это поэтому выигрывает самый короткий ответ в байтах!

Все это должно быть 1-проиндексировано


0-индексированный, 1-индексированный или выбор дилера?
Лохматый

@ Shaggy Я думаю, что это 1-индексированный, так что он совместим с тестовыми примерами (порядок порядка имеет значение).
Мистер Кскодер

@ Mr.Xcoder Это 1-й POP, 7-й премьер

@MrXcoder: да, извините, я, вероятно, плохо сформулировал это; что я хотел спросить, разрешено ли 0-индексирование? Очевидно, что из тестов, 1 индексация будет разрешена. Кстати, есть ли у нас консенсус в отношении того, какую индексацию мы можем использовать в тесте, если все, что нам нужно, - это тестовые случаи, и в спецификациях вызовов нет явного упоминания?
Лохматый

1
Спасибо, Билл. Хотя, по большей части, ваши недавние проблемы были очень хорошими, у каждого из них была небольшая проблема или 2, которые необходимо было уточнить в комментариях, поэтому я бы посоветовал вам начать «песочницу» с вашими вызовами, чтобы Позвольте нам уловить эти проблемы.
Лохматый

Ответы:


3

Mathematica, 104 байта

Чрезвычайно эффективный

(t=i=1;While[t<#+1,If[!FreeQ[Subsets[(r=IntegerDigits)@Prime@i,{Length@r@i}],r@i],t++];i++];Prime[i-1])&


находит n = 34 в течение минуты


2

Шелуха , 11 байт

!fS¤o€Ṗdṗİp

Попробуйте онлайн!

Не так быстро, вычисляет f (5) примерно за 30 секунд на TIO

объяснение

!fS¤o€Ṗdṗİp
 f       İp    Filter the list of prime numbers and keep only those for which:
  S¤o€Ṗdṗ       The "d"igits of its index in the "ṗ"rime numbers are an "€"lement of the 
                  "Ṗ"owerset of its "d"igits
!              Return the element at the desired index of this filtered list

2

Python 2 + gmpy2 , 188 162 байта

Довольно эффективный, находит n = 34 за 22 секунды на TIO!

Может быть, немного в гольф

from gmpy2 import*
def F(a,b):
 i=k=0
 while b[i:]and a[k:]:k+=a[k]==b[i];i+=1
 return"0">a[k:]
x=input()
u=z=1
while x:z=next_prime(z);x-=F(`u`,`z`);u+=1
print z

Попробуйте онлайн!


@ Допап, разве это не добавит байтов? __import__("gmpy2").длиннее, чемfrom gmpy2 import*\n
Halvard Hummel

Ах да, я не знаю, почему в первый раз все вышло иначе. Я, наверное, забыл кавычки или что-то
Даниэль


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.