📜  在N以下打印所有安全质数(1)

📅  最后修改于: 2023-12-03 15:23:25.280000             🧑  作者: Mango

在N以下打印所有安全质数

安全质数是指形如 $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)

代码说明:

  1. is_prime(n) 函数用于判断一个数是否是质数。该函数通过迭代判断 $2$ 到 $n^{1/2}$ 之间是否有数可以整除 $n$ ,如果有,那么 $n$ 就不是质数,否则 $n$ 是质数。
  2. find_safe_primes(n) 函数用于找到 N 以下的所有安全质数。该函数从 $5$ 开始遍历到 $n$,每次判断两个连续的奇数 $i$ 和 $i-2$ 是否都是质数。如果是,那么 $i$ 就是一个安全质数,将其添加到结果列表中。
  3. 代码的最后一行指定了 N 的值,可以根据需要进行修改。运行程序后,会输出 N 以下的所有安全质数。

参考资料:

  1. 安全质数 - 维基百科,自由的百科全书
  2. Python 判断质数的方法 - Python 小清新 - 博客园