【模板】埃氏筛

来源:互联网 发布:hbuilder手机版软件 编辑:程序博客网 时间:2024/06/07 23:04
#include<iostream>#include<cstdio>#include<cmath>using namespace std;int n;bool prime[10001];void shai(int s){    for(int i=2;i<=s/2;i++)    for(int j=i*i;j<=s;j+=i)    prime[j]=1;}int main(){    scanf("%d",&n);    shai(n);    for(int i=2;i<=n;i++)    if(!prime[i]) cout<<i<<" ";    return 0;}

原理:当一个数是质数时,它的倍数肯定是合数。
之所以从i*i开始,是因为i*2,i*3早已被筛过了。

原创粉丝点击