擅长:python、mysql、java
<p>正如奥斯汀所评论的<code>isPrime</code>过早地返回true。通过将<code>return True</code>移出<code>for</code>循环,函数将检查<code>range(2, n)</code>中的每个数字,然后确认该数字是素数。你知道吗</p>
<p>假设你要做<code>isPrime(13)</code>,它应该返回<code>True</code></p>
<p>在<code>for</code>循环的第一个过程中<code>if n % i == 0</code>将是<code>if 13 % 2 == 0</code>,这是错误的。由于<code>for</code>循环中的<code>else: return True</code>,函数将返回<code>True</code>并终止。你知道吗</p>
<p>要解决这个问题,您可以编写<code>isPrime()</code>,如:</p>
<pre><code>def isPrime(n):
if n > 1:
for i in range(2, n):
if n % i == 0:
return False
return True
else:
return False
</code></pre>