整理模板,同时测了一下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