素数的判断方法Python,Python 素数判断
本文主要介绍用Python判断素数(素数)的简单方法。经常用于科学计算的Python可以轻松处理这样的小问题。_-有需要的朋友可以参考一下。
质数也叫质数。在大于1的自然数中,除了1和整数本身之外不能被其他自然数整除的数。它在素数理论中起着重要的作用。大于1但不是质数的数叫做合数。1和0既不是质数,也不是复数。素数是与合数相对的两个概念,构成了数论中最基本的定义之一。基于素数定义的世界级难题有很多,比如哥德巴赫猜想。证明了算术基本定理中每一个大于1的正整数都可以写成素数的乘积,并且这个乘积的形式是唯一的。这个定理的重点是把1排除在素数集合之外。如果认为1是素数,那么这些严格的解释就不得不加上一些限制。前几天偶然有朋友问python如何判断一个质数,网上查了一下,总结了python脚本判断一个数是不是质数的几种方法:
1.使用python的数学函数
导入数学
def isPrime(n):
如果n=1:
返回False
对于i in range(2,int(math.sqrt(n)) 1):
如果n % i==0:
返回False
返回True
2.一行程序扫描质数
从数学导入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模块
从itertools导入计数
www.gxlcms.com
如果n=1:
返回False
对于我在计数:
如果我在:
返回True
如果n % i==0:
返回False
3.不使用模块的两种方法方法1:
def isPrime(n):
如果n=1:
返回False
i=2
而i*i=n:
如果n % i==0:
返回False
i=1
返回True
方法二:
def isPrime(n):
如果n=1:
返回False
如果n==2:
返回True
如果n % 2==0:
返回False
i=3
而i * i=n:
如果n % i==0:
返回False
i=2
返回True
例:既然求20001到40001之间的质数(质数)只能用1或自己四舍五入,说明余数为0的时候只有两次。代码如下:
#!/usr/rdqc/python
L1=[]
对于xrange中的x(20001,40001):
n=0
对于xrange(1,x 1)中的y:
如果x % y==0:
n=n 1
如果n==2:
打印x
L1 .追加(x)
打印L1
结果如下:
20011
20021
20023
20029
20047
20051
20063
20071
20089
20101
20107
20113
20117
20123
20129
20143
20147
20149
20161
20173
….
更多使用Python判断质数(素数)的简单相关文章请关注PHP中文网!
这篇技术文章来自互联网。如果您无意侵犯您的权益,请点击此处反馈版权投诉。
系统来源:php中文网
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。