W szczególności PRIMEGAME Conwaya .
Jest to algorytm opracowany przez Johna H. Conwaya w celu generowania liczb pierwszych przy użyciu sekwencji 14 liczb wymiernych:
A B C D E F G H I J K L M N
17 78 19 23 29 77 95 77 1 11 13 15 15 55
-- -- -- -- -- -- -- -- -- -- -- -- -- --
91 85 51 38 33 29 23 19 17 13 11 14 2 1
Na przykład F jest ułamkiem 77/29.
Oto jak algorytm znajduje liczby pierwsze. Zaczynając od liczby 2, znajdź pierwszy wpis w sekwencji, który po pomnożeniu razem daje liczbę całkowitą. Tutaj jest to M, 15/2, która produkuje 15. Następnie, dla tej liczby całkowitej 15, znajdź pierwszy wpis w sekwencji, który po pomnożeniu tworzy liczbę całkowitą. To jest ostatni N, lub 55/1, który daje 825. Zapisz odpowiednią sekwencję. (Bystry spośród was może uznać to za program FRACTRAN .)
Po kilku iteracjach otrzymasz:
2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, 910, 170, 156, 132, 116, 308, 364, 68, 4 ...
Zauważ, że ostatni wymieniony element to 4lub 2^2. Oto nasza pierwsza liczba pierwsza ( 2wykładnik) wygenerowana za pomocą tego algorytmu! Ostatecznie sekwencja będzie wyglądać następująco:
2 ... 2^2 ... 2^3 ... 2^5 ... 2^7 ... etc.
W ten sposób uzyskujemy liczby pierwsze. To jest OEIS A007542 .
Wyzwanie
Biorąc pod uwagę liczbę wejściową n, zero lub jedną indeksowaną (do wyboru), albo wypisz pierwsze nliczby z tej sekwencji, albo nwypisz numer th tej sekwencji.
Przykłady
Poniższe przykłady przedstawiają ntermin th sekwencji o indeksie zerowym.
n output
5 2275
19 4
40 408
Zasady
- Jeśli ma to zastosowanie, możesz założyć, że wejście / wyjście będzie pasować do rodzimego typu Integer w twoim języku.
- Dane wejściowe i wyjściowe można podać dowolną dogodną metodą .
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
408.0zamiast 408na przykład.