下面埃氏筛从 i * i 开始标记合数,原因是:i*i 之前 i 的合数倍数,已经被更小的质因子标记完成。
def sieve(n):
isPrime = [True] * (n + 1)
isPrime[0] = isPrime[1] = False
i = 2
while i * i <= n:
if isPrime[i]:
j = i * i
while j <= n:
isPrime[j] = False
j += i
i += 1
return isPrime
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析