D


私信TA

用户名:ALS1111

访问量:19648

签 名:

等  级
排  名 52
经  验 10977
参赛次数 0
文章发表 132
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

python-乘积最大
浏览:204
python-回文数
浏览:176
python-摆花摆花
浏览:119

解题思路:
埃拉托色尼筛选法

用一个bool数组,存储n个数的状态,初始化都为true,然后从2开始,如果2的状态为true,就开始遍历比n小的所有的2的倍数,将其全部置为false。把2的倍数遍历完后,继续往下找下一个状态为true的数,即3,遍历比n小的所有的3的倍数(按3*3,3*4,3*5这样遍历,注意不需要从3*2开始了)。.....最后剩下的状态为true的数全为质数。

埃拉托色尼筛选法原文链接:https://blog.csdn.net/xiaoquantouer/article/details/51817803


注意事项:


参考代码:

def f(n):  
    primes = [True for i in range(n+1)]  
    sum = 0  
    p = 2  
  
    while (p*p < n):  
        if primes[p]:  
            for i in range(2*p,n+1,p):  
                primes[i] = False  
        p = p + 1  
  
    for i in range(2,n+1):  
        if primes[i]:  
            sum = sum + i  
  
    print(sum)      
     
  
if __name__ == '__main__':  
    n = int(input())  
    f(n)
 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区