我是靠谱客的博主 简单飞鸟,这篇文章主要介绍python质数如何判断,现在分享给大家,希望可以做个参考。

本教程操作环境: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质数如何判断内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部