📅  最后修改于: 2023-12-03 15:23:25.280000             🧑  作者: Mango
安全质数是指形如 $p$ 和 $q=p+2$ 均为质数的质数 $p$ 。例如,11是一个安全质数,因为 $11$ 和 $13$ 都是质数。
我们可以通过以下的 Python 代码来找到 N 以下的所有安全质数。
def is_prime(n):
"""判断一个数是否为质数"""
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def find_safe_primes(n):
"""找到N以内的所有安全质数"""
safe_primes = []
for i in range(5, n, 2):
if is_prime(i) and is_prime(i-2):
safe_primes.append(i)
return safe_primes
n = 1000
safe_primes = find_safe_primes(n)
print(safe_primes)
代码说明:
is_prime(n)
函数用于判断一个数是否是质数。该函数通过迭代判断 $2$ 到 $n^{1/2}$ 之间是否有数可以整除 $n$ ,如果有,那么 $n$ 就不是质数,否则 $n$ 是质数。find_safe_primes(n)
函数用于找到 N 以下的所有安全质数。该函数从 $5$ 开始遍历到 $n$,每次判断两个连续的奇数 $i$ 和 $i-2$ 是否都是质数。如果是,那么 $i$ 就是一个安全质数,将其添加到结果列表中。参考资料: