擅长:python、mysql、java
<p>很长一段时间以来,我没有做太多的Python,但我尝试了自己的尝试来解决这个问题,我认为这个问题更具可读性。就其价值而言,我假设当你说“显示0-N范围内的所有数字”时,这是一个排他的上界,但是如果我错了,很容易使它成为一个包容的上界。在</p>
<pre><code>import math
def digits(n):
return (int(d) for d in str(n))
def is_super(n):
return sum(math.factorial(d) for d in digits(n)) == n
def supers_in_range(n):
return (x for x in range(n) if is_super(x))
print(list(supers_in_range(150))) # [1, 2, 145]
</code></pre>