擅长:python、mysql、java
<p>现有的答案已经说明了如何完成最后一个循环,将函数连接在一起。或者,您也可以使用更多的内置函数和库,比如<code>sum</code>,或者{<cd2>},为了得到数字,您可以迭代数字的字符串表示形式中的字符。在</p>
<p>这样,问题可以在一行代码中解决(不过最好将is super check移到单独的函数中)。在</p>
<pre><code>def issuper(n):
return sum(math.factorial(int(d)) for d in str(n)) == n
N = 1000
res = [n for n in range(1, N+1) if issuper(n)]
# [1, 2, 145]
</code></pre>