Especificamente, o PRIMEGAME de Conway .
Este é um algoritmo desenvolvido por John H. Conway para gerar números primos usando uma sequência de 14 números racionais:
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
Por exemplo, F é a fração 77/29
.
Então, aqui está como o algoritmo encontra os números primos. Começando com o número 2
, encontre a primeira entrada na sequência que, quando multiplicadas juntas, produz um número inteiro. Aqui é M
, 15/2
que produz 15
. Em seguida, para esse número inteiro 15
, encontre a primeira entrada na sequência que, quando multiplicada, produz um número inteiro. Esse é o último N
, ou 55/1
, que produz 825
. Anote a sequência correspondente. (Os astutos entre vocês podem reconhecer isso como um programa FRACTRAN .)
Após algumas iterações, você obterá o seguinte:
2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, 910, 170, 156, 132, 116, 308, 364, 68, 4 ...
Observe que o último item listado é 4
, ou 2^2
. Veja nosso primeiro número primo (o 2
expoente) gerado com este algoritmo! Eventualmente, a sequência terá a seguinte aparência:
2 ... 2^2 ... 2^3 ... 2^5 ... 2^7 ... etc.
Assim, produzindo os números primos. Este é o OEIS A007542 .
O desafio
Dado um número de entrada n
, indexado com zero ou um (sua escolha), produz os primeiros n
números dessa sequência ou o n
th número dessa sequência.
Exemplos
Os exemplos abaixo estão exibindo o n
termo th da sequência indexada a zero.
n output
5 2275
19 4
40 408
Regras
- Se aplicável, você pode supor que a entrada / saída caiba no tipo Inteiro nativo do seu idioma.
- A entrada e saída podem ser fornecidas por qualquer método conveniente .
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
408.0
em vez de 408
por exemplo.