擅长:python、mysql、java
<p>尝试用<code>while True:</code>替换它,并在生成足够的数字时中断循环。在您的代码中,您正在运行所有可能的数字,这是非常低效的。在</p>
<pre><code>def isHarshad(i):
l = list(str(i))
a = sum([int(e) for e in l])
if a == 0:
return False
if i % a == 0:
return True
else:
return False
def ithHarshad(i):
a = []
count = 0
x = 0
while True:
x += 1
if isHarshad(x):
a = a + [x]
count += 1
if count == i: # Breaks when enough numbers are generated.
break
print(a)
ithHarshad(25)
</code></pre>
<p>这将继续向<code>x</code>添加1,直到计数终止为止。在</p>