首页 > 其他分享 >《冬训周报二》

《冬训周报二》

时间:2023-01-10 01:11:18浏览次数:54  
标签:11 25 13 23 冬训 素数 序列 周报

埃氏筛选法

概念

埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。

步骤

  1. 列出2以后的所有序列:
    • 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  2. 标出序列中的第一个素数,也就是2,序列变成:
    • 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  3. 将剩下序列中,划掉2的倍数,序列变成:
    • 2 3 5 7 9 11 13 15 17 19 21 23 25
  4. 如果这个序列中最大数小于最后一个标出的素数的平方,那么剩下的序列中所有的数都是素数,否则回到第二步。
  5. 本例中,因为25大于2的平方,我们返回第二步:
  6. 剩下的序列中第一个素数是3,将主序列中3的倍数划掉,主序列变成:
    • 2 3 5 7 11 13 17 19 23 25
  7. 我们得到的素数有:2,3
  8. 25仍然大于3的平方,所以我们还要返回第二步:
  9. 序列中第一个素数是5,同样将序列中5的倍数划掉,主序列成了:
    • 2 3 5 7 11 13 17 19 23
  10. 我们得到的素数有:2,3,5 。
  11. 因为23小于5的平方,跳出循环.
结论:2到25之间的素数是:2 3 5 7 11 13 17 19 23。

C++代码实现

#include <stdio.h>
#include <math.h>
bool is_prime[1000];
int main(){
    int n;
    scanf("%d", &n);
    for(int i = 0; i <= n; i++){
        is_prime[i] = true;                    //初始化所有的数为素数
    }
    for(int i = 2; i <= sqrt(n); i++){         //从第一个素数2开始筛选
        if(is_prime[i]){                       //如果是素数
            for(int j = i*i; j <= n; j += i){  //则剔除掉它的倍数
                is_prime[j] = false;
            }
        }
    }
    for(int i = 2; i <= n; i++){
         if(is_prime[i]){
             printf("%d\n", i);
         }
    }
    return 0;
}

 

标签:11,25,13,23,冬训,素数,序列,周报
From: https://www.cnblogs.com/Gwzhizi/p/17038969.html

相关文章

  • 2023.1.9周报
    本周总结:《算法竞赛》5.3、5.4,《算法竞赛进阶指南》0x56、0x5C、靠队友录屏白嫖了namomocamp的内容。大方向:动态规划小专题:数位DP、状压DP题目完成情况:div2、abc各......
  • ## SZTUACM周报(2023.1.2 ~ 2023.1.8)
    图论刷题昂贵的聘礼(单源最短路,图论建模)思路:将每个物品看作一个点,到达这个点表示获得该物品,获取该物品的代价就是边权,用0号点表示初始状态(不拥有任何物品),......
  • 寒训周报2
    寒训周报2训练方向本周学习的大方向是数据结构方面的内容,主要是平衡树方面的知识,同时跟着蓝书写了写分块的内容。心得感悟经过本周的学习能清楚掌握splay的思路和其操......
  • 2023/1/9 周报
    周报本周总结​ 这周有两天是出去找同学联络感情,所以有两天基本是没啥心思刷题的。然后这周也是namomocamp的开始,听这个camp总的来说收益很大,不过难度很高,需要花费很多......
  • 周报
    叶子豪202002020325大主题:刷题小专题:刷abc的题目,以及看了一些dp的例子一些新的认识:vector+lower_bound的运行速度很慢,本想让一个数组插入就可以实现排序,然后也可以依次......
  • 2023.1.8周报
    2023.1.8周报本周总结本周还是动态规划,因为回家了休息了几天,没有刷多少题,本周还是在动态规划。大主题动态规划小专题背包,树形dp,换根dp,数位dp,概率dp。题目完成情况a......
  • 2023.1.8周报
    本周总结:本周主要学习了一些数据结构的内容,部分算法以了解为主。大专题:数据结构小专题:树链剖分,dsuontree,分块,莫队,带修莫队,dfs序,RMQ题目完成情况树剖:7题dfs序,RM......
  • 2023.1.8 周报
    本周总结本周主要是了解图论相关的一些算法。大主题图论小专题单源最短路的应用、floyd、最小生成树、最小生成树的拓展应用、负环、差分约束、有向图的强连通分量,无......
  • 周报二
    2023/1/8周报大主题:字符串&动态规划&数论本周总结:本周主要是继续对字符串(后缀自动机SAM、广义后缀自动机GSAM、回文树/回文自动机PAM、序列自动机SUBM)的学习。GSAM......
  • 训练周报二
    主要内容:动态规划一周全是dp,把kuangbin的dp基础题单ak了,现在差不多算是有点基础了,后面再陆续专门开树形dp这些内容abc前面写的慌慌张张的,节奏把握不好,读题慢还容易乱交题......