COJ 2024 仙境传奇(五)——一个天才的觉醒 素数筛

整理模板,同时测了一下memset,for,fill到底谁快。。。

结果:memset最快,其次是for,fill最慢QAQ。。。。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<queue>
 6 #include<cstring>
 7 #define PAU putchar(‘ ‘)
 8 #define ENT putchar(‘\n‘)
 9 using namespace std;
10 const int maxn=10000000+10;
11 bool pri[maxn];
12 void makepri(int n){
13     int lim=sqrt(n);memset(pri,true,sizeof(pri));
14     for(int i=2;i<=lim;i++)if(pri[i])for(int j=i*i;j<=n;j+=i)pri[j]=false;return;
15 }
16 inline int read(){
17     int x=0,sig=1;char ch=getchar();
18     while(!isdigit(ch)){if(ch==‘-‘)sig=-1;ch=getchar();}
19     while(isdigit(ch))x=10*x+ch-‘0‘,ch=getchar();
20     return x*=sig;
21 }
22 inline void write(int x){
23     if(x==0){putchar(‘0‘);return;}if(x<0)putchar(‘-‘),x=-x;
24     int len=0,buf[15];while(x)buf[len++]=x%10,x/=10;
25     for(int i=len-1;i>=0;i--)putchar(buf[i]+‘0‘);return;
26 }
27 int n;
28 void init(){
29     n=read();makepri(n);
30     for(int i=2;i<=n;i++) if(pri[i]) write(i),ENT;
31     return;
32 }
33 void work(){
34     return;
35 }
36 void print(){
37     return;
38 }
39 int main(){init();work();print();return 0;}
时间: 2024-11-09 02:15:59

COJ 2024 仙境传奇(五)——一个天才的觉醒 素数筛的相关文章

经典算法之判断一个整数是否为素数

经典算法之判断一个整数是否为素数 1 /** 2 判断一个数是否为素数 如: 3 输入: 任意一个数 12 4 输出: 1或0(1表示为素数) 0 5 */ 6 /**************被称为笨蛋的做法************/ 7 #include <stdio.h> 8 9 int main() 10 { 11 12 int i,n; //i为计数数,n为存储用户输入的数 13 14 do //循环检测用户输入的数据>0为合法 15 scanf("%d",&

poj 2689 Prime Distance(筛一个区间内的素数(或合数))

: [题意说明] 给你指定的范围[L, U],在这个范围内找出相邻最近和最远的两组质数,若最近或最远值相同,输出较小的那组.其中:1≤L,另U-L≤1000000. [问题分析] 此题与质数有关,显然若是能求出[L, U]之间的质数,然后从前往后扫描一遍即可出需要的结果,但问题是L与U的范围太大,是不可能在规定的时间内实现的. 但这里给我们提供了另一个条件:U-L≤1000000,如果我们只求1000000以内的素数,完全可以在规定的时间实现的!但由于所求的不是1-1000000以内的素数,所以

判断一个整数是否为素数(质数)

//判断一个整数是否为素数(质数)//质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数#include <stdio.h>int main(){ int n, i, flag = 0; printf("请输入一个正整数:"); scanf("%d", &n); for (i = 2; i <= n / 2; ++i) { //如果满足以下的条件,他就不是素数 if (n%i == 0) { flag = 1;

实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面

简介 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码,实现在线下载与重置更改的功能. 如果能较为仔细地阅读前四篇文章,第五篇给出的示例,应当是可以理解为无足轻重的.但是,大多数时候,我们更多的可能只是需要一个简易的解决方案,就是那种拿来就可以用的东西,那种我们需要先能看到一个简要的示例来看下效果再解决是否再继续阅读的方案.如此,对于很久以后,由于各种原

第三章 传奇的开始--Delphi(附读书笔记)

第三章 传奇的开始--Delphi "是惊世之作的Delphi让Borland重新站了起来,没有当初的Delphi,就没有今日的Borland!" "是Turbo Pascal诞生了Borland,但却是Object Pascal给予了Borland重生的机会!" 创造传奇故事的主角--Delphi 没有人会知道在两年后Borland C/C++会遭遇到这么大的失败,也没有人会预料到Borland又会再次因为Pascal而东山再起.Borland奋斗史精彩的地方就在

刘宇凡:海子,一个孤独的灵魂诗人

刘宇凡:海子,一个孤独的灵魂诗人 上 星期天总算没有宅在家里睡觉,夹着没有太阳的阳光心情,来到了一家24小时不打烊的书店(1200bookshop,广州的朋友喜欢看书的可以去逛逛), 一直以来都想寻找一家有特色的书店,这家书店还算是很不错的,不大,很温馨,很舒适,有沙发,有水吧,有休息的小房间.我来到后先逛了一圈,发现经典书籍 偏少,我竟然没有看到鲁迅.胡适.林语堂.三毛.木心.茅盾.郁达夫等这些人的书籍,也没有看到有相关现代史的书籍,不过介绍台湾历史的书籍还是比较全 的,关于台湾历史我还是很感

Aaron Swartz – 互联网天才开挂的人生历程:每时每刻都问自己,现在这世界有什么最重要的事是我能参与去做的?

Aaron说的一句话让我挺有感触的-- 相信你应该真的每时每刻都问自己,现在这世界有什么最重要的事是我能参与去做的? 如果你没在做那最重要的事,那又是为什么? 1986年11月8日,有个叫Aaron Swartz的人在美国芝加哥伊利诺伊州出生.因为他父母创办了一个软件公司,所以,Aaron在3岁的时候就接触到了电脑,然后就着迷了. 我们先通过Aaron Swartz 的青少年时期来看一下他是怎么样的一个天才: 12岁的时候Aaron就创建了一个类似于Wikipedia式的网站(那时还没有Wiki

作为一个新手的Oracle(DBA)学习笔记【转】

一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cmd—>sqlplus “/as sysdba” //以sysdba用户登录,这样可以管理权限,添加用户等 Win+R—cmd—>sqlplus username/password //以指定用户名密码登录 win+R —> cmd —–> sqlplus //按照提示,输入用户名密码 

施乐传奇

猩猩和复印机 要如何才能把他们组合起来,而让别人恨你呢? ? 1960年,施乐做到了.他们拍摄了这样一条电视广告:一只猩猩在复印机上轻松愉快的点按了一下,刷刷刷地各种文件就出来了. 广告播出第二天,很多作为复印机的主要用户的秘书们,桌子上都多了一根香蕉. 按照我们正常人类的思维方式,这时候应该找出那个恶作剧的同事,然后让他和那只香蕉来一次亲密接触. ? 顺便向大家介绍一个中原一些地区使用的动词:怼.例句:用香蕉怼他. ? 秘书们却很恨施乐,纷纷抗议,施乐嘲讽他们的工作简单的猩猩都可以做. ? 施