python双素数_python双素数_用Python打印100以下的所有双素数对

^{bq}$

这是一种基于筛分的方法,它有点短,速度快得多:def find_prime_pairs(n):

sieve = [True] * n

if n > 0:

sieve[0] = False

if n > 1:

sieve[1] = False

for number in range(2, int(n ** 0.5) + 1):

if sieve[number]:

for index in range(number * number, n, number):

sieve[index] = False

return [(a, b) for b, a in enumerate(range(0, n - 2), start=2) if sieve[a] and sieve[b]]

print(*find_prime_pairs(100), sep='\n')

用法

^{pr2}$

当使用小于等于100的素数时,任何代码都可以,它对性能的征税范围太小了。让我们考虑一下1000000(一百万)。为了计时,我们将计数而不是打印。在

@AlexHall提供的第一个答案需要两倍于原始代码的时间来计算对数,直到一百万。他的第二个答案比你原来的代码要长三倍。短并不总是意味着更快。在你完全测试过之前,不要相信任何答案。在

我上面基于筛子的代码比你的原始代码快四倍,并且小了15%。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值