用Python语言写费马小定理素数判定法生成大于1024大素数
时间: 2024-11-22 16:45:16 浏览: 10
费马小定理是一个用于判断一个数是否为质数的数学原理,它表明如果p是素数,对于任意整数a,\( a^{p-1} \mod p = 1 \)。我们可以利用这个性质编写Python程序,结合循环和模运算来检查一个数是否可能是素数。
以下是一个简单的Python函数,使用费马小定理辅助素数判断:
```python
def is_probably_prime(n, k=5): # 通常选择k值较小,这里设为5次测试
if n <= 1 or (n % 2 == 0 and n > 2): # 费马小定理只对大于1且为奇数的数有效
return False
def check_trial(divisor):
return pow(divisor, n - 1, n) != 1 # 判断除自身外是否满足费马小定理
for _ in range(k):
random_number = get_random_divisor(n)
if check_trial(random_number):
return False
return True # 如果所有测试都通过,那么可能是素数
def get_random_divisor(n):
import random
return random.randint(2, int(n**0.5)) # 避免考虑大于√n的因子
# 使用示例
large_number = 1025 # 指定你要检测的大于1024的数
if is_probably_prime(large_number):
print(f"{large_number} 可能是素数")
else:
print(f"{large_number} 不可能是素数")
阅读全文