本文摘自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》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python质数如何判断