Un numero di Munchausen nella base , noto anche come invariante da cifra a cifra perfetta o PDDI è un tipo peculiare di numero intero positivo in cui la somma delle sue cifre di base sollevate a se stesse è uguale al numero stesso. Prendono il nome dal barone immaginario Munchausen , che apparentemente si sollevò attraverso la sua coda di cavallo per salvarsi dall'annegamento. Un concetto correlato sono i numeri narcisistici .
Ad esempio, è banalmente un numero di Munchausen in ogni base perché . Inoltre, ogni numero intero positivo è un numero di Munchausen in base 1 per definizione.
Ancora più interessante, è un numero di Munchausen in base 10 perché , e in realtà è l'unico altro numero di Munchausen in base 10 .
Un elenco parziale dei numeri di Munchausen in ogni base fino a 35 può essere trovato sull'OEIS come sequenza A166623 .
Dato un numero intero positivo , determinare se si tratta di un numero di Munchausen in qualsiasi base .
Regole
- Si applicano le regole I / O predefinite, quindi:
- Il programma completo o le funzioni sono accettabili.
- L'input può essere da STDIN, come argomento di funzione, e l'output può essere su STDOUT, come valore di ritorno di una funzione, ecc.
- Si applicano scappatoie predefinite.
- L'output deve essere uno dei due risultati distinti e coerenti. Quindi
TRUE
va bene per la verità eFALSE
va bene per la falsità, ma puoi invertirla o tornareNone
per la verità e1
per la falsità o altro. Si prega di specificare i risultati selezionati nella risposta. - La tua risposta deve funzionare almeno teoricamente per qualsiasi numero intero positivo.
- I numeri di Munchausen usano la convenzione , quindi è un numero di Munchausen base-2 come . Il tuo codice deve seguire questa convenzione.
- Le spiegazioni sono fortemente incoraggiate, anche se molto probabilmente gli invii useranno il metodo di ricerca della forza bruta.
- L'uso delle lingue esoteriche ti fa guadagnare punti brownie poiché Munchausen era apparentemente una persona strana.
Casi test
Truthy
1 (all bases)
2 (base 2)
5 (base 3)
28 (base 9 and base 25)
29 (base 4)
55 (base 4)
3435 (base 10)
923362 (base 9)
260 (base 128)
257 (base 64 and base 253)
Falsy
3
4
591912
3163
17
Questo è code-golf , quindi vince la risposta più breve in ogni lingua (in byte)!
determine if it's a Munchausen number in any base b≥2.