import random
def is_prime(n, k=10):
"""
用费马定理进行素性检测
输入被检测数n与检测次数k(可选)
输出费马素性检测结果True|False
"""
if n == 2 or n == 3:
return True
if n % 2 == 0:
return False
# 判断是否有非法参数
if n <= 1 or k <= 0 or type(k) != int:
raise ("parameter error!")
# 使用费马定理进行 k 次素性检测
random_numbers = random.sample(range(2, n), min(k, n-2))
for i in random_numbers:
if pow(i, n-1, n) != 1:
return False
return True
费马素性检测——python代码实现
于 2023-09-07 16:41:22 首次发布