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 4
lub 2^2
. Oto nasza pierwsza liczba pierwsza ( 2
wykł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 n
liczby z tej sekwencji, albo n
wypisz numer th tej sekwencji.
Przykłady
Poniższe przykłady przedstawiają n
termin 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.0
zamiast 408
na przykład.