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

A21090. 埃氏筛中将内层循环从 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.ap…

单选题 困难

题目描述

埃氏筛中将内层循环从 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

选项(单选)

上一题 下一题