Rekurencyjnie liczby pierwsze są sekwencją liczb pierwszych taką, że
p(1) = 2
p(n) = the p(n-1)th prime
Oto przykład, w jaki sposób można obliczyć 4. Rekurencyjnie Prime Prime.
p(4) = the p(3)th prime
p(3) = the p(2)th prime
p(2) = the p(1)th prime
p(1) = 2
p(2) = the 2nd prime
p(2) = 3
p(3) = the 3rd prime
p(3) = 5
p(4) = the 5th prime
p(4) = 11
Powinieneś napisać program lub funkcję, która gdy otrzyma n, wyświetla n-ty Rekurencyjnie Prime Prime.
Możesz zdecydować się na użycie indeksowania opartego na 0, jeśli chcesz, w którym to przypadku musisz to zaznaczyć w swojej odpowiedzi.
To jest golf golfowy, więc celem jest zminimalizowanie liczby bajtów.
Przypadki testowe
1 -> 2
2 -> 3
3 -> 5
4 -> 11
5 -> 31
6 -> 127
7 -> 709
8 -> 5381
9 -> 52711
Odpowiedni wpis OEIS : OEIS A007097
⁸
.¡
akceptuje tylko nilady jako powtórzenia i domyślne dane wejściowe, jeśli nie zostaną znalezione?<f><n>¡
z radością akceptuje monadyczne lub dyadyczne atomy<n>
. Jeśli jednak<f>
jest to nilad, coś musi być nie tak, więc jest ono analizowane jako<f>¡
zamiast i pobiera ostatnie dane wejściowe (ostatni argument wiersza poleceń, STDIN nie istnieje)<n>
zamiast tego.JavaScript (ES6), 71 bajtów
Ungolfed, masz trzy oddzielne funkcje rekurencyjne:
P
określa, czyn
jest liczbą pierwszą;N
znajduje tęn
pierwszą;p
rekurencyjnie działaN
na1
n
czasy wejściowe .źródło
MATL , 6 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
R
98 98bajtów5 bajtów dzięki @smci
Oto strasznie nieefektywne rozwiązanie rekurencyjne:
Wyjście testowe:
źródło
a<-ifelse(m==0,j,f(m-1,j))
if
takiego użycia ... całkiem spoko !!Bash + wspólne narzędzia, 55
Ponieważ wykonujemy rekurencyjne liczby pierwsze, oto rekurencyjna odpowiedź:
Ponieważ zliczanie poziomów rekurencyjnych opiera się na
$SHLVL
wbudowanej zmiennej, odpowiedź może być wyłączona, jeśli masz już kilka poziomów głębokości powłoki. Prawdopodobnie dlatego ta odpowiedź nie działa w TIO.Jeśli to nie jest dobre, oto bardziej konwencjonalna odpowiedź:
Bash + wspólne narzędzia, 58
Wypróbuj online .
źródło
Haskell , 58 bajtów
1-indeksowany
Wypróbuj online!
Wyjaśnienie:
Używa tej samej sztuczki dostępu do listy pierwszej z indeksowaniem 0 jak odpowiedź Adnana .
Zasadniczo prostota jest zgodna ze specyfikacją w przeciwnym razie.
źródło
05AB1E , 4 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Cud , 23 bajty
1-indeksowany. Stosowanie:
Wyjaśnienie
źródło