Introduzione (potrebbe essere ignorata)
Mettere tutti i numeri positivi nel suo ordine regolare (1, 2, 3, ...) è un po 'noioso, no? Quindi ecco una serie di sfide intorno alle permutazioni (rimpasto) di tutti i numeri positivi. Questa è la terza sfida di questa serie (collegamenti alla prima e alla seconda sfida).
In questa sfida, organizzeremo i numeri naturali in file di lunghezza crescente in modo tale che la somma di ogni riga sia un numero primo. Ciò che trovo davvero sorprendente di questo, è che ogni numero naturale ha un posto in questa disposizione. Nessun numero viene saltato!
Questa visualizzazione di questa disposizione è simile alla seguente:
row numbers sum
1 1 1
2 2 3 5
3 4 5 8 17
4 6 7 9 15 37
5 10 11 12 13 21 67
6 14 16 17 18 19 23 107
etc.
Possiamo leggere gli elementi dalle righe in questo triangolo. I primi 20 elementi sono: 1, 2, 3, 4, 5, 8, 6 , 7, 9, 15, 10, 11, 12, 13, 21, 14, 16, 17, 18, 19 ( sì, c'è una canzone del Nuovo Ordine nascosta in questa sequenza ).
Dato che si tratta di una sfida "sequenza pura", il compito è quello di produrre per un dato come input, dove è A162371 .
Compito
Dato un input intero , output in formato intero.
viene definito come il -esimo elemento del lexicographically prima permutazione dei numeri naturali tali che, se visto come un triangolo lettura per righe, per n> 1 le somme di righe sono numeri primi. Poiché la prima permutazione lessicografica dei numeri naturali inizia con 1, è 1. Notare che con questa definizione e nonènecessario essere primi. Questa è la sequenza OEISA162371.
Nota: qui si assume l'indicizzazione basata su 1; puoi utilizzare l'indicizzazione basata su 0, quindi , ecc. Indicare questo nella risposta se si sceglie di utilizzarlo.
Casi test
Input | Output
---------------
1 | 1
5 | 5
20 | 19
50 | 50
78 | 87
123 | 123
1234 | 1233
3000 | 3000
9999 | 9999
29890 | 29913
Regole
- Input e output sono numeri interi (il tuo programma dovrebbe almeno supportare input e output nell'intervallo da 1 a 32767)
- Input non validi (0, float, stringhe, valori negativi, ecc.) Possono causare output non previsti, errori o comportamenti (non) definiti.
- Si applicano le regole I / O predefinite .
- Sono vietate le scappatoie predefinite .
- Questo è code-golf , quindi vince la risposta più breve in byte