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")
上面的代码正在检查一个数字是偶数还是奇数。如果输入素数,例如17,代码将检查17是否小于或等于0。然后检查17%2,该值等于1,而不是0。因此,执行else块,打印的不是PRIME。你知道吗
如果输入偶数,则打印为素数。
这段代码检查素数。你知道吗
我假设您是python的初学者,那么让我指出检查代码中数字素数的逻辑是不正确的,您应该首先仔细阅读primes numbers的定义,当您这样做时,请尝试理解这个演示如何检查素数的小示例:
现在,请注意上面的代码是检查一个数是否为素数的最简单也是最慢的方法之一。当你对素数的概念足够熟悉的时候,你应该寻找最快的方法来检查素数,一些例子可以是Fermat和Miller-Rabin素数测试。所以,祝素数好运,你一定会玩得很开心;-)
逻辑不正确
素数(或素数)是一个大于1的自然数,除1和它本身外,没有其他正因子。大于1的自然数不是素数,称为复合数。你知道吗
下面是简单的python代码
相关问题 更多 >
编程相关推荐