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/2que 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 2expoente) 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 nnúmeros dessa sequência ou o nth número dessa sequência.
Exemplos
Os exemplos abaixo estão exibindo o ntermo 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.0em vez de 408por exemplo.