Cose da sapere:
Innanzitutto numeri fortunati.
I numeri fortunati vengono generati in questo modo:
Prendi tutti i numeri naturali:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...
Quindi, rimuovere ogni secondo numero.
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39...
Adesso 3è al sicuro.
Rimuovi ogni 3o numero:
1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49, 51, 55, 59...
Adesso 7è al sicuro.
Rimuovi ogni 7o numero.
Continua e rimuovi tutti ni numeri, dove si ntrova il primo numero sicuro dopo un'eliminazione.
L'elenco finale dei numeri sicuri sono i numeri fortunati.
I numeri sfortunati sono composti da liste separate di numeri, che sono [U1, U2, U3... Un].
U1 è la prima serie di numeri rimossi dai fortunati "candidati", quindi sono:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20...
U2 viene rimosso il secondo set di numeri:
5, 11, 17, 23, 29, 35, 41, 47, 53, 59...
E così via e così via ( U3è la terza lista, U4è la quarta, ecc.)
Sfida:
Il tuo compito è, quando vengono dati due input me n, generare il mnumero th nell'elenco Un.
Ingressi e uscite di esempio:
(5, 2) -> 29
(10, 1) -> 20
Specifiche:
- Il programma deve funzionare
mfino a1e6enfino a100.- Sei garantito che entrambi
mensono numeri interi positivi. - Se sei curioso,
U(1e6, 100)=5,333,213,163. (Grazie @pacholik!)
- Sei garantito che entrambi
- Il programma deve calcolarlo entro 1 giorno su un computer moderno e ragionevole.
Questo è code-golf , quindi vince il codice più breve in byte!
PS: Sarebbe bello se qualcuno inventasse una formula generale per generarli. Se hai una formula, inseriscila nella tua risposta!
(1e6,1e6)?
n=1caso? Poiché questo è speciale, per tutti gli altri casi, l'indice in base 0 del prossimo numero fortunato è n-1.