python脚本判断一个数是否为素数的几种方法


质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等。算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。这个定理的重要一点是,将1排斥在素数集合以外。如果1被认为是素数,那么这些严格的阐述就不得不加上一些限制条件。

前几天偶尔的有朋友问python怎么判断素数的方法,在网上查了查,总结了python脚本判断一个数是否为素数的几种方法:
 

 
 
  1. #运用python的数学函数    
  2.    
  3. import math    
  4.    
  5. def isPrime(n):    
  6.     if n <= 1:    
  7.     return False   
  8.     for i in range(2, int(math.sqrt(n)) + 1):    
  9.     if n % i == 0:    
  10.         return False   
  11.     return True   
  12.    
  13. #单行程序扫描素数    
  14.    
  15. from math import sqrt    
  16. N = 100   
  17. [ p for p in   range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]    
  18.    
  19.    
  20. #运用python的itertools模块    
  21.    
  22. from itertools import count    
  23. def isPrime(n):    
  24.     if n <= 1:    
  25.         return False   
  26.     for i in count(2):    
  27.         if i * i > n:    
  28.             return True   
  29.         if n % i == 0:    
  30.             return False   
  31.    
  32. #不使用模块的两种方法    
  33.    
  34. def isPrime(n):    
  35.     if n <= 1:    
  36.         return False   
  37.     i = 2   
  38.     while i*i <= n:    
  39.         if n % i == 0:    
  40.             return False   
  41.         i += 1   
  42.     return True   
  43.    
  44.    
  45. def isPrime(n):    
  46.     if n <= 1:    
  47.         return False   
  48.     if n == 2:    
  49.         return True   
  50.     if n % 2 == 0:    
  51.         return False   
  52.     i = 3   
  53.     while i * i <= n:    
  54.         if n % i == 0:    
  55.             return False   
  56.         i += 2   
  57.     return True 
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值