赞
踩
素数有这样一个规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13等。
证明过程如下:
因此,我们将所有输入的大于等于5的数据以上述方式表示,将其除以6,若余数不为1或5,则直接证明其不是素数,剩下的再进行从1遍历到√N的判断,注意步长为6:
- from math import sqrt,floor
- def prime(num) :
-
- if num == 2 or num == 3 : return True
-
- if num % 6 != 1 and num % 6 != 5 : return False
-
- for i in range(5,floor(sqrt(num))+1,6) :
- if num % i == 0 or num % (i+2) == 0 : return False
-
- return True
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。