python质数如何判断


本文摘自php中文网,作者coldplay.xixi,侵删。

python质数判断的方法:首先运用python的数学函数;然后单行程序扫描素数,代码为【[ p for p in range(2, N) if 0 not in [ p% d for d in range(2,int(sqrt(p)】。

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

python质数判断的方法:

1、运用python的数学函数

1

2

3

4

5

6

7

8

9

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、单行程序扫描素数

1

2

3

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模块

1

2

3

4

5

6

7

8

9

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:

1

2

3

4

5

6

7

8

9

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:

1

2

3

4

5

6

7

8

9

10

11

12

13

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的时候,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

#!/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

结果如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

20011

20021

20023

20029

20047

20051

20063

20071

20089

20101

20107

20113

20117

20123

20129

20143

20147

20149

20161

20173

….

相关免费学习推荐:python视频教程

以上就是python质数如何判断的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python是c语言编的吗

Python实现todo清单的代码示例

Python中的idle在哪里

实例详解利用Python暴力破解zip文件口令的方法

Python中sys模块的详细介绍(代码示例)

Python中导入模块的关键字是什么

Python爬虫能够干什么

mapreduce是干嘛的,三分钟了解mapreduce运行原理

Python实现shell sed替换简单的功能

Python 循环语句之 while,for语句详解

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...