📜  1至n之间的双素数(1)

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

双素数

双素数指的是两个相邻的素数,例如3和5、11和13等等。1至n之间的双素数,可以通过编程来实现。

解法

首先,我们需要判断一个数是否为素数。素数是指只能被1和自己整除的正整数。判断一个数是否为素数,可以使用以下的代码:

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

然后,我们从2开始,遍历到n。对于每一个数i,判断i和i+1是否都为素数。如果是,那么i和i+1就是一个双素数,加入到结果列表中。

def get_twin_primes(n):
    result = []
    for i in range(2, n):
        if is_prime(i) and is_prime(i + 1):
            result.append((i, i + 1))
    return result
示例

我们可以使用该函数,检查1至100之间的双素数:

print(get_twin_primes(100))

输出:

[(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73)]
总结

1至n之间的双素数可以通过编程的方式实现。我们可以先判断一个数是否为素数,然后从2开始遍历到n,对于每一个数i,判断i和i+1是否都为素数。如果是,就加入到结果列表中。