以b为底的Munchausen数(也称为完美数对数不变式或PDDI)是一种特殊类型的正整数,其中,将其b数的底位数加起来等于其自身。他们以虚构的男爵Munchausen的名字命名,男爵显然是通过自己的马尾辫将自己抬起的,以免溺水。一个相关的概念是自恋数字。
例如,是平凡在每个基地Munchausen号码,因为。另外,根据定义,每个正整数都是以1为底的Munchausen数。
更有趣的是,是一个以10为底的Munchausen数,因为,实际上是唯一的另一个以10为底的Munchausen数。
在OEIS上可以找到序列号为A166623的Munchausen数字的部分列表,最多35个基数。
给定一个正整数,确定它是否是任何一个基Munchausen数。
规则
- 默认的I / O规则适用,因此:
- 完整的程序或功能是可以接受的。
- 输入可以来自STDIN,作为函数参数,输出可以到STDOUT,作为函数返回值,等等。
- 默认漏洞适用。
- 输出必须是两个不同的,一致的结果之一。因此
TRUE
,对真理有好处,FALSE
对虚假也可以,但您可以颠倒它,也可以None
为真理和1
虚假之类返回。请在答案中指定所选结果。 - 您的答案必须至少在理论上适用于任何正整数。
- Munchausen数字使用约定,因此是2的Munchausen数字以为基数。您的代码必须遵循此约定。
- 即使提交内容很可能使用蛮力搜索方法,也强烈建议您进行解释。
- 由于蒙克豪森显然是一个陌生的人,所以使用深奥的语言可以使您获得布朗尼积分。
测试用例
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
这是代码高尔夫球,因此每种语言(以字节为单位)中最短的答案将获胜!
determine if it's a Munchausen number in any base b≥2.