概要
(数学セミナー編集部 2024) でミュンヒハウゼン数を知ったので計算してみた。
コード
import itertools import functools @lru_cache(maxsize=1000) def _calc(i, ind): return i * (10**ind) def Munchhausen(n_digits=4): ret = [] values = [(i, i**i) for i in range(1, 10)] for x in itertools.product(*[values]*n_digits): a = 0 b = 0 for ind, (i, iv) in enumerate(x): a += _calc(i, ind) b += iv if a == b: ret.append(a) return ret for i in range(1, 7): print(i, Munchhausen(i))
1 [1] 2 [] 3 [] 4 [3435] 5 [] 6 []
参考文献
数学セミナー編集部, ed. 2024. 数学セミナー2024年4月号 通巻750号【特集】数学とのつきあい方2024. Kindle版. 日本評論社. https://lead.to/amazon/jp/?op=bt&la=ja&key=B0CWDVX4KN.