下面的自定义函数是判断一个自然数是否为素数。利用的是6倍原理。一个自然数都能写成6的形式。如:6K+N(0=<N<=5的整数)。N为0,2,3,4的时候6K+N能被1和本身以外的数整除,也就是一个数只有在除以6的时候余数为1或者5的才有可能是素数。之所以说有可能是要排除掉25能被6X1-1整除,35=(6X1-1)*(6X1+1),排除掉这种情况就可以了。代码如下:
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 21 22:35:59 2018
@author: FanXiaoLei
"""
#python判断一个整数是否为素数
def isprime(num):
if num<=1:
return False
elif num==2 or num==3:
return True
elif num%6!=1 and num%6!=5:
return False
else:
sqrtn=int(num**0.5)+1
flag=True
for i in range(5,sqrtn,6):
if num%i==0 or num%(i+2)==0:
flag=False
break
return flag