擅长:python、mysql、java
<p>我假设您是python的初学者,那么让我指出检查代码中数字素数的逻辑是不正确的,您应该首先仔细阅读<a href="https://en.wikipedia.org/wiki/Prime_number" rel="nofollow">primes numbers</a>的定义,当您这样做时,请尝试理解这个演示如何检查素数的小示例:</p>
<pre><code>import math
def is_prime_naive(number):
if number == 2:
return True
if number % 2 == 0:
return False
i = 3
sqrt_number = math.sqrt(number)
while i <= sqrt_number:
if number % i == 0:
return False
i = i+2
return True
for i in range(2,101):
print "{0} {1} prime".format(i,"is" if is_prime_naive(i) else "is not")
</code></pre>
<p>现在,请注意上面的代码是检查一个数是否为素数的最简单也是最慢的方法之一。当你对素数的概念足够熟悉的时候,你应该寻找最快的方法来检查素数,一些例子可以是Fermat和Miller-Rabin素数测试。所以,祝素数好运,你一定会玩得很开心;-)</p>