Um número de Munchausen na base , também conhecido como invariante perfeito de dígito a dígito ou PDDI é um tipo peculiar de número inteiro positivo em que a soma dos dígitos da base elevados para si mesmos é igual ao número em si. Eles são nomeados para o fictício Barão Munchausen , que aparentemente se ergueu através de seu próprio rabo de cavalo para se salvar do afogamento. Um conceito relacionado são os números narcisistas .
Por exemplo, é trivialmente um número de Munchausen em todas as bases porque . Além disso, todo número inteiro positivo é um número Munchausen de base 1 por definição.
Mais interessante, é um número Munchausen de base 10 porque e, de fato, é o único outro número Munchausen de base 10 .
Uma lista parcial dos números de Munchausen em todas as bases até 35 pode ser encontrada no OEIS como sequência A166623 .
Dado um número inteiro positivo , determine se é um número de Munchausen em qualquer base .
Regras
- As regras de E / S padrão se aplicam, portanto:
- Programa completo ou funções são aceitáveis.
- A entrada pode ser de STDIN, como argumento de função, e a saída pode ser para STDOUT, como um valor de retorno de função, etc.
- Aplicam-se brechas padrão.
- A saída deve ser um dos dois resultados distintos e consistentes. O mesmo
TRUE
vale para a verdade eFALSE
para a falsidade, mas você pode reverter isso ou retornarNone
para1
a verdade e a falsidade ou qualquer outra coisa. Especifique os resultados selecionados em sua resposta. - Sua resposta deve funcionar pelo menos teoricamente para qualquer número inteiro positivo.
- Os números de Munchausen usam a convenção , então é um número de Munchausen de base 2 como . Seu código deve seguir esta convenção.
- As explicações são fortemente encorajadas, embora as submissões provavelmente usem o método de busca por força bruta.
- O uso de idiomas esotéricos ganha pontos extras, já que Munchausen era aparentemente uma pessoa estranha.
Casos de teste
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
Isso é código-golfe , então a resposta mais curta em cada idioma (em bytes) vence!
determine if it's a Munchausen number in any base b≥2.