有一个代码可以找到从2
到的所有素数n
。它工作正常,但我不喜欢其中几乎有两个相同的if
。如何在不增加功能时间的情况下删除它们?
def f(n):
set_ = set()
arr = [2, 3]
for i in range(6, n+1, 6):
a, b = i - 1, i + 1
if a not in set_:
set_.update(range(a, n+1, a))
arr.append(a)
if b not in set_:
set_.update(range(b, n+1, b))
arr.append(b)
return arr
for
:好吧,将常用操作放入函数中 - 标准重构: