<p>问题是我的代码打印出来了</p>
<pre><code>"The number you entered is prime"
</code></pre>
<p>很多时候取决于我输入的数字,然后是</p>
<pre><code>"That number is not prime"
</code></pre>
<p>如果这个数不是素数。我知道它为什么要这样做(因为if语句不断循环返回for循环,直到找到一个等分的数字,然后打印“not prime”结果),但我要问的问题是如何修复它?你知道吗</p>
<pre><code>def isprime(n):
try:
npnc = "Neither prime nor composite"
if isinstance(n, complex) == True:
print("Sorry, trial division doesn't like negative numbers. Try again.")
elif n == 0:
return npnc
elif n == 1:
return npnc
else:
for m in range(2, (int(n**.5)+1)):
if n%m == 0:
print("That number is not prime")
break
elif n%m > 0:
print("The number you entered is prime")
</code></pre>
<p>注意:它确实有一个我没有包含的“except ValueError”片段。你知道吗</p>
<p>在你的函数中使用它-分解任务总是很好的,在<em>这种</em>情况下,它允许提前返回:</p>
<pre><code>def isprime_impl(n):
for m in range(2, (int(n**.5)+1)):
if n%m == 0:
return False
return True
</code></pre>