Python函数实现素数判断
发布时间:2023-06-30 14:39:54
要判断一个数是否为素数,可以使用以下函数实现:
def is_prime(n):
if n <= 1:
return False
elif n <= 3:
return True
elif n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
该函数首先判断如果数n小于等于1,则不是素数,返回False。如果数n等于2或3,则是素数,返回True。接下来,利用数学规律,判断n是否能被2或3整除,如果能,则不是素数,返回False。
然后,从i=5开始,每次增加6,判断n是否能被i或i+2整除,如果能,则不是素数,返回False。这是因为除了2和3外,所有的素数都可以写成6n-1或6n+1的形式,所以只需要判断6n-1和6n+1的情况即可。
最后,如果通过以上判断,都没有返回False,则说明n为素数,返回True。
测试一些例子:
print(is_prime(2)) # True print(is_prime(3)) # True print(is_prime(7)) # True print(is_prime(11)) # True print(is_prime(13)) # True print(is_prime(17)) # True print(is_prime(20)) # False print(is_prime(25)) # False print(is_prime(30)) # False
输出结果:
True True True True True True False False False
以上就是使用Python函数判断一个数是否为素数的实现。这个函数可以快速判断任意数是否为素数,并且在时间复杂度上进行了优化,效率比较高。
