本文摘自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怎么print出共轭复数
讲解Python 中删除文件的几种方法
Python绘制折线图和散点图的详细方法介绍(代码示例)
Python线程下timer对象、lock对象和rlock对象的简单介绍
Python适合网页编程吗
Python正则表达式之中的findall函数是什么?
Python常用函数有哪些
Python怎么把字符串换成元组
Python 快速使用 rest api
Python函数之complex()函数
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python质数如何判断