素数的检测算 法是很有趣的,并且会涉及到数论、概率算法等诸多内容,一直觉得素数探测算法是了解概率算法很好的入口。本文和 大家简单聊聊如何确定一个数是素数。7. if p bing==1
8. result result a %o m
9.
10. return result
这个算法的复杂度正比于a、p和m中位数最多的数的二进制位数,要远远低于朴素的模幂求解法
例如,下面的代码在我的机器上瞬间可以完成
1. compute power(2,
686479766013060971498190079
一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数。
首先我们来第一个传统的判断思路:
def handlerNum(num):
# 质数大于 1
if num > 1:
# 查看是否有其他因子
for i in range(2, num//2+1):
if (num % i) == 0:
print(num,"不是质数")
break
else:
p