本教程操作环境: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质数如何判断内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复