测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A60999. 埃氏筛中将内层循环从 j = i*i 开始而不是 j = 2*i 的主要原因是( )。1 def eratosthenes_sieve_for(n)

单选题

题目描述

埃氏筛中将内层循环从 j = i*i 开始而不是 j = 2*i 的主要原因是( )。

1 def eratosthenes_sieve_for(n):
2  if n < 2:
3   return []
4  is_composite = [False] * (n + 1)
5  primes = []
6
7  for i in range(2, n + 1):
8   if is_composite[i]:
9    continue
10   primes.append(i)
11
12   # 用for循环模拟C++的 j = i*i; j <=n; j +=i
13   for j in range(i * i, n + 1, i):
14    is_composite[j] = True
15
16  return primes


选项(单选)