#include<stdio.h>
const int maxn=???;//确定区间
int all[maxn];//字典,非素数标记为1
int prime[maxn];//储存已经筛出来的素数,其中prime[1]=2
int p;
int main(){
int i,j,k;
all[0]=all[1]=1;
for(i=2;i<=maxn;i++){
if(!all[i]){
prime[++p]=i;
}
for(j=1;j<=p&&prime[j]*i<=maxn;j++){
all[prime[j]*i]=1;
if(i%prime[j]==0){
break;
}
}
}
return 0;
}
2.埃筛
#include<stdio.h>
const int maxn=???;//确定区间
int all[maxn];//字典,非素数标记为1
int main(){
int i,j,k;
all[0]=all[1]=1;
for(i=2;i<=maxn;i++){
if(!all[i]){
for(j=i+i;j<=maxn;j+=i){
all[j]=1;
}
}
}
return 0;
}