La più antica miniera di sale polacca, situata a Bochnia *, fu iniziata nell'anno 1248, che possiamo considerare un numero magico . Possiamo vedere che è pari a 4 cifre della sequenza di exponentiations: .
Dato che la data è in realtà di 4 cifre dalla sequenza, potremmo allungarla. Potremmo ripetere il processo fino a raggiungere l'infinito. La sequenza sarebbe simile a questa, se la limitassimo al numero2048
124816326412825651210242048
Per renderlo un po 'migliore, possiamo separare i numeri:
1|2|4|8|16|32|64|128|256|512|1024|2048
Proviamo una sequenza personalizzata più lunga della data. Diciamo, vogliamo che abbia 5 cifre - ci sono più di una possibilità:
24816
81632
64128
O quelli a 3 cifre:
124
248
816
Potremmo anche aggiungere i numeri di 3 cifre a questo, ma diciamo che una sequenza deve avere almeno due numeri .
* Non ci sono informazioni al riguardo su Wikipedia in inglese. Se inserisci la versione polacca, allora c'è. Se visiti la miniera, anche i lavoratori ti diranno che è iniziata nel 1248.
La sfida
Crea una sequenza esponenziale come negli esempi sopra con 2 come base.
Dato un numero compreso nell'intervallo 2-27, emettere tutte le parti possibili della sequenza (quella del 2048 o più grande se lo si desidera) con una quantità di cifre pari all'input. Non è possibile tagliare un numero, quindi l'output come 481
non è valido, perché 16 è tagliato a metà.
Regole:
- Sono vietate le scappatoie standard .
- Si può presumere che l'ingresso sia un numero all'interno dell'intervallo.
- Il tuo programma può accettare input maggiori dell'intervallo (28+), ma ciò non aumenta / diminuisce il punteggio.
- Gli spazi nell'output vengono ignorati. Puoi produrre come
124
o come4 8 16
. - Diverse possibilità dovrebbero essere separate da qualsiasi carattere dall'elenco:
,./|
o da un avanzamento riga. - È possibile eseguire l'output come un array.
- Ogni possibilità dovrebbe includere almeno 2 numeri diversi .
- Devi generare una parte della sequenza, non puoi mescolare numeri che non sono vicini l'uno all'altro, come:
14
. - L'output codificato non è consentito, tuttavia, è possibile codificare in modo rigido una stringa / numero / matrice contenente l'intera sequenza.
- L'ingresso 27 dovrebbe restituire l'intera sequenza 2048.
- Come già accennato in precedenza, non tagliare i numeri . Ex.
16
devi rimanere16
- non puoi usare481
- devi usare4816
. - EDIT: avrei potuto dire qualcosa di sbagliato lì; 2048 è l'ultimo numero che il tuo programma dovrebbe supportare, puoi aggiungere il supporto per int più grandi.
Casi test
Ingresso: 2
12, 24, 48
Ingresso: 3
124, 248, 816
Ingresso: 4
1248, 4816, 1632, 3264
Ingresso: 5
24816, 81632, 64128
Ingresso: 27
124816326412825651210242048
E numeri successivi ...
Se ho commesso un errore in uno dei casi di test, dimmelo o modifica la domanda.
Questo è code-golf , quindi vince il codice più corto in byte!