In particolare, PRIMEGAME di Conway .
Questo è un algoritmo ideato da John H. Conway per generare numeri primi usando una sequenza di 14 numeri razionali:
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
Ad esempio, F è la frazione 77/29
.
Quindi ecco come l'algoritmo trova i numeri primi. A partire dal numero 2
, trova la prima voce nella sequenza che quando moltiplicata insieme produce un numero intero. Qui è M
, 15/2
che produce 15
. Quindi, per quel numero intero 15
, trova la prima voce nella sequenza che quando moltiplicata produce un numero intero. Questo è l'ultimo N
, o 55/1
, che cede 825
. Annota la sequenza corrispondente. (L'astuto tra voi potrebbe riconoscere questo come un programma FRACTRAN .)
Dopo alcune iterazioni, otterrai quanto segue:
2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, 910, 170, 156, 132, 116, 308, 364, 68, 4 ...
Si noti che l'ultimo elemento elencato è 4
o 2^2
. Ecco il nostro primo numero primo (l' 2
esponente) generato con questo algoritmo! Alla fine, la sequenza sarà simile alla seguente:
2 ... 2^2 ... 2^3 ... 2^5 ... 2^7 ... etc.
Quindi, dando i numeri primi. Questo è OEIS A007542 .
La sfida
Dato un numero di input n
, zero o uno-indicizzato (a scelta), emette i primi n
numeri di questa sequenza o emette il n
numero th di questa sequenza.
Esempi
Gli esempi seguenti mostrano il n
termine della sequenza indicizzata zero.
n output
5 2275
19 4
40 408
Regole
- Se applicabile, puoi supporre che l'input / output si adatti al tipo intero nativo della tua lingua.
- L'input e l'output possono essere forniti con qualsiasi metodo conveniente .
- È accettabile un programma completo o una funzione. Se una funzione, è possibile restituire l'output anziché stamparlo.
- Sono vietate le scappatoie standard .
- Si tratta di code-golf quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).
408.0
invece che 408
per esempio.