筛法求素数
问题 E: 筛选法求质数
时间限制: 1 Sec 内存限制: 128 MB题目描述
求N(<= 20000000)以内的质数。
输入
N
输出
从小到大输出N以内的质数
样例输入
10
样例输出
2 3 5 7
提示
如题
粗暴方法加
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int a[20000045]; void write(int x) { char ch[45]; int l=0; while(x!=0) { ch[++l]=x%10+'0'; x/=10; } for(int i=l;i>=1;i--) putchar(ch[i]); } int main() { int n; cin>>n; int p=sqrt(n); for(register int i=2; i<=n; i++) { if(a[i]) continue; else { write(i); putchar(' '); } if(i>p) continue; for(register int j=i*i; j<=n; j+=i) a[j]=1; } return 0; } // FOR C.H
PEACE