养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

用python3判定素数(自己定义的函数)

时间:2024-10-31 13:29:06

本文,用python3写一个判别素数的自定义函数。

工具/原料

python3.6

math模块

time模块

方法/步骤

1、根据素数的定义,写一个粗略的自定义函数:defp(n):ifstr(n).i衡痕贤伎sdigit()andn>1:fo鸡堕樱陨riinrange(2,n-1):ifn%i==0:returnFalsereturnTrueelse:print('变量有误,请输入大于1的整数。')

用python3判定素数(自己定义的函数)

2、先检验一下这个函数是否靠谱:foriinrange(36):print(i,'',p(i))看来还是挺靠谱的。

用python3判定素数(自己定义的函数)

3、我们溽朽孑臾查看一下,用这个函数检测8000以内的所有素数,需要用多长时间:importtimea=time.cl泠贾高框ock()foriinrange(2,8000):p(i)b=time.clock()print('用时%s秒。'%(b-a))

用python3判定素数(自己定义的函数)

4、前30000个素数的判别,用时为2秒多点。

用python3判定素数(自己定义的函数)

5、用这个函数判断2^100+45是否素数,用时长达36秒:importtimea=time.clock()i=2**100+45p(i)b=time.clock()print('用时%s秒。'%(b-a))

用python3判定素数(自己定义的函数)

6、我们苴煜塑桠来写出2^100+45最小的素因子,就得先修改自定义函数:defp(n):ifstr(n).isdigit()andn>稆糨孝汶;1:foriinrange(2,n-1):ifn%i==0:print(i)returnFalsereturnTrueelse:print(n,'变量有误,请输入大于1的整数。')然后开始检测:importtimea=time.clock()i=2**100+45print(p(i))b=time.clock()print('用时%s秒。'%(b-a))

用python3判定素数(自己定义的函数)

用python3判定素数(自己定义的函数)

7、再检验一下:print((2**100+45)%178691549)运行结果等于0,说明2^100+45确实不是素数。

用python3判定素数(自己定义的函数)

© 一点知识