You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现primesCount函数 统计小于等于i的质数个数问题修复

问题核心原因

你现有代码的primesCount函数仅将generatePrimes返回的布尔列表直接存入结果,没有完成布尔值转整数求和的逻辑,且多次重复调用generatePrimes会产生不必要的性能开销。

修正后的完整代码
import math

def generatePrimes(n):
    prime = [False for i in range(n)]
    for i in range(2, n):
       if i > 1:
           for j in range(2, int(math.sqrt(i))+1):
               if i % j == 0:
                   break
           else:
               prime[i] = True
    return prime

def primesCount(n):
    # 仅调用一次generatePrimes获取所有0~n-1的质数判定结果
    prime_list = generatePrimes(n)
    count_list = []
    current_count = 0
    for is_prime in prime_list:
        # Python中布尔值本身可参与计算,True等价于1,False等价于0
        current_count += is_prime
        count_list.append(current_count)
    return count_list
   
n = int(input("Enter a number: "))
print(primesCount(n))
运行验证

输入6时,generatePrimes(6)返回的判定列表为[False, False, True, True, False, True],累加后得到的输出结果为[0, 0, 1, 2, 2, 3],完全符合要求。

内容的提问来源于stack exchange,提问作者Anony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:24:06