python判断质数的方法,python定义判断素数的函数
本文用python3编写了一个判断素数的自定义函数。
工具/材料
python3.6
数学模块
时间模块
操作方法
01
根据素数的定义,写一个粗略的自定义函数:
定义p(n):
if str(n)。isdigit()和n1:
对于范围(2,n-1)中的I:
如果n%i==0:
返回False
返回True
否则:
Print(变量错误,请输入大于1的整数。)
02
我们先来看看这个函数是否可靠:
对于范围内的I(36):
打印第一页第一行)
好像挺靠谱的。
03
让我们看看用这个函数检测8000以内的所有质数需要多长时间:
导入时间
a=时间.时钟()
对于范围内的I(28000):
专业人员(一)
b=时间.时钟()
打印(用了%s秒。%(b-a))
04
前三万个素数的判别需要2秒以上。
05
用这个函数判断2 ^ 100 ^ 45是否是质数最多需要36秒:
导入时间
a=时间.时钟()
i=2**100 45
专业人员(一)
b=时间.时钟()
打印(用了%s秒。%(b-a))
06
要写出2 ^ 100 ^ 45的最小质因数,我们必须首先修改自定义函数:
定义p(n):
if str(n)。isdigit()和n1:
对于范围(2,n-1)中的I:
如果n%i==0:
打印(一)
返回False
返回True
否则:
Print(n,变量有误,请输入大于1的整数。)
然后开始检测:
导入时间
a=时间.时钟()
i=2**100 45
印刷(第一页)
b=时间.时钟()
打印(用了%s秒。%(b-a))
07
再次检查:
印刷品((2**100 45)8691549)
运行结果等于0,说明2 ^ 100 ^ 45真的不是素数。
好了,大致内容就这些,(完)
如果一个素数很大,用本文的方法判断要花很多时间。因此,本文给出的自定义函数还有待改进。
给定n ^ 2这个数,如果用不大于n的素数来检验,无疑会节省很多时间,但是,还有一个问题,就是我们需要事先给定所有小于n的素数。并且检测所有小于n的质数将是耗时的。我们来对比一下怎么写代码。
声明:本文观点仅代表作者本人。天晴信息网是一个信息发布平台,只提供信息存储空间服务。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。