python双素数_python双素数_用Python打印100以下的所有双素数对
^{bq}$
這是一種基于篩分的方法,它有點(diǎn)短,速度快得多: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}$
當(dāng)使用小于等于100的素數(shù)時,任何代碼都可以,它對性能的征稅范圍太小了。讓我們考慮一下1000000(一百萬)。為了計時,我們將計數(shù)而不是打印。在
@AlexHall提供的第一個答案需要兩倍于原始代碼的時間來計算對數(shù),直到一百萬。他的第二個答案比你原來的代碼要長三倍。短并不總是意味著更快。在你完全測試過之前,不要相信任何答案。在
我上面基于篩子的代碼比你的原始代碼快四倍,并且小了15%。在
總結(jié)
以上是生活随笔為你收集整理的python双素数_python双素数_用Python打印100以下的所有双素数对的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 读取照片imread,利用
- 下一篇: python鼠标移动轨迹_鼠标的另一种选