python判断质数_【Python】质数的几种判断方法

算法一:针对输入的数字x,我们可以遍历从2到x-1这个区间中的数,如果x能被这个区间中任意一个数整除,那么它就不是质数。

def is_prime1(x):

for i in range(2, x):

if num % i == 0:

return False

return True

算法二:对算法一的优化,事实上只需要遍历从2到√x即可。

def is_prime2(x):

for i in range(2, int(x ** 0.5) + 1):

if x % i == 0:

return False

return True

算法三:偶数中除了2都不是质数,且奇数的因数也没有偶数,因此可以进一步优化。

def is_prime3(x):

if x == 2:

return True

elif x % 2 == 0:

return False

for i in range(3, int(x ** 0.5) + 1, 2):

if x % i == 0:

return False

return True

算法四:任何一个自然数,总可以表示成以下六种形式之一:6n,6n+1,6n+2,6n+3,6n+4,6n+5(n=0,1,2...)我们可以发现,除了2和3,只有形如6n+1和6n+5的数有可能是质数。且形如6n+1和6n+5的数如果不是质数,它们的因数也会含有形如6n+1或者6n+5的数,因此可以得到如下算法:

def is_prime4(x):

if (x == 2) or (x == 3):

return True

if (x % 6 != 1) and (x % 6 != 5):

return False

for i in range(5, int(x ** 0.5) + 1, 6):

if (x % i == 0) or (x % (i + 2) == 0):

return False

return True

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值