您现在的位置是:群英 > 开发技术 > Python语言
Python中怎样判断质数?一文教你三种方法
Admin发表于 2022-01-04 18:53:435621 次浏览

    Python中怎样判断质数?质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。相信大家都会判断,那么我们用代码要怎样编程呢?这里给大家分享三种方法,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。

    本教程操作环境:windows7系统、python3.9版,DELL G3电脑。

    python质数判断的方法:

    1、运用python的数学函数

import math 
 
def isPrime(n): 
  if n <= 1: 
  return False
  for i in range(2, int(math.sqrt(n)) + 1): 
  if n % i == 0: 
    return False
  return True

    2、单行程序扫描素数

from math import sqrt 
N = 100
[ p for p in  range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]

    运用python的itertools模块

from itertools import count 
def isPrime(n): www.jb51.net
  if n <= 1: 
    return False
  for i in count(2): 
    if i * i > n: 
      return True
    if n % i == 0: 
      return False

    3、不使用模块的两种方法

    方法1:

def isPrime(n): 
  if n <= 1: 
    return False
  i = 2
  while i*i <= n: 
    if n % i == 0: 
      return False
    i += 1
  return True

    方法2:

def isPrime(n): 
  if n <= 1: 
    return False
  if n == 2: 
    return True
  if n % 2 == 0: 
    return False
  i = 3
  while i * i <= n: 
    if n % i == 0: 
      return False
    i += 2
  return True

    eg:求出20001到40001之间的质数(素数)

    既然只能被1或者自己整出,那说明只有2次余数为0的时候,代码如下:

#!/usr/bin/python
 
L1=[]
for x in xrange(20001,40001):
 n = 0
 for y in xrange(1,x+1):
 if x % y == 0:
  n = n + 1
 if n == 2 :
 print x
 L1.append(x)
print L1

    结果如下:

20011
20021
20023
20029
20047
20051
20063
20071
20089
20101
20107
20113
20117
20123
20129
20143
20147
20149
20161
20173
….

    关于Python中怎样判断质数的方法就介绍到这,上述几种方法都具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家学习和理解Python使用有帮助,想要了解更多Python的知识,大家可以关注其它的相关文章。

文本转载自PHP中文网

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: python判断质数
相关信息推荐
2022-01-28 17:35:31 
摘要:Python怎样辨别字符串是否是整数?因为字符串可以是整字符也可以是数字,因此首先我们需要判断是不是数字,然后再判断整数,那么具体怎样来实现呢?下面给大家介绍了两种方法,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!
2022-06-02 17:20:45 
摘要:方法:1、用“array_values($arr)”将数组转为索引数组;2、用“array_search(值,数组)”从索引数组中搜索值,并返回对应索引;2、用“array_splice($arr,索引-1,1)”从原数组中删除前一个元素。
2022-01-19 18:19:53 
摘要:Java类成员的访问权限有什么?Java类成员的访问权限有package、private、public和protected这四种访问,分别是什么意思呢?以及有什么不同?下面我们来详细的了解看看。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部