miller-rabin算法代码
时间: 2023-12-09 18:04:11 浏览: 80
Miller-Rabin算法源码
4星 · 用户满意度95%
以下是 Miller-Rabin 算法的 Python 代码实现:
```python
import random
def is_prime(n, k=5):
# 如果 n 小于 2 或为偶数,则不是素数
if n < 2 or n % 2 == 0:
return False
# 计算 s 和 d,使得 n-1 = 2^s * d
s = 0
d = n - 1
while d % 2 == 0:
s += 1
d //= 2
# 进行 k 次检验
for i in range(k):
a = random.randint(2, n - 1)
x = pow(a, d, n)
if x == 1 or x == n - 1:
continue
for j in range(s - 1):
x = pow(x, 2, n)
if x == n - 1:
break
else:
return False
return True
```
其中,`n` 是要判断的数,`k` 是进行检验的次数。该函数返回 `True` 如果 `n` 可能是素数,否则返回 `False`。
阅读全文