埃氏筛中将内层循环从 j = i*i 开始而不是 j = 2*i 的主要原因是( )。
def eratosthenes_sieve_for(n):
if n < 2:
return []
is_composite = [False] * (n + 1)
primes = []
for i in range(2, n + 1):
if is_composite[i]:
continue
primes.append(i)
# 用for循环模拟C++的 j = i*i; j <=n; j +=i
for j in range(i * i, n + 1, i):
is_composite[j] = True
return primes
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析