擅长:python、mysql、java
<p>除了别人指出的以外,你的<code>ifprime</code>是错误的。您正在检查<code>while y > 0</code>,当然,它最多测试<code>y = 1</code>,因此总是返回false。在</p>
<p>为了优化的目的,你不必测试最多<code>x/2</code>,你可以测试最多<code>sqrt(x)</code>,这就足够了。在</p>
<pre><code>import math
def ifprime (x):
y = math.ceil(math.sqrt(x))
while y > 1:
if x % y == 0:
return False
y -= 1
return True
</code></pre>