You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写程序找出≤100的孪生素数对?现有代码需优化

孪生素数筛选实现方案

步骤1:收集所有≤100的素数

你原来的代码找到素数就直接打印,我们先把符合条件的素数存到列表里,方便后续筛选素数对。同时优化素数判断效率——不需要遍历到b本身,只需遍历到b的平方根即可,因为如果b有大于平方根的因数,对应的另一个因数肯定小于平方根,能减少循环次数。

primes = []
# range是左闭右开,设为101才能包含100
max_num = 101
for b in range(2, max_num):
    is_prime = True
    # 优化素数判断范围到平方根
    for p in range(2, int(b**0.5) + 1):
        if b % p == 0:
            is_prime = False
            break
    if is_prime:
        primes.append(b)

步骤2:筛选差值为2的素数对

有了素数列表后,遍历列表检查每对相邻素数的差值是否为2,满足条件就按格式输出两个素数。

for i in range(len(primes) - 1):
    if primes[i+1] - primes[i] == 2:
        print(primes[i], primes[i+1])

完整代码

合并两部分代码,直接运行就能得到预期结果:

primes = []
max_num = 101
for b in range(2, max_num):
    is_prime = True
    for p in range(2, int(b**0.5) + 1):
        if b % p == 0:
            is_prime = False
            break
    if is_prime:
        primes.append(b)

for i in range(len(primes) - 1):
    if primes[i+1] - primes[i] == 2:
        print(primes[i], primes[i+1])

内容的提问来源于stack exchange,提问作者Daniel M_D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:25:38