质数线性筛——(大学复健)

不想写了,反正原理还没有自己推出来过,就这样吧,如果哪天整清楚了我再补上

#include<bits/stdc++.h>
using namespace std;

bool ispri[1009];
long long pri[1009];
const long long MAXN=1e3;

long long kd(){
	int x=0;int f=1;char ch=getchar();
	while(isdigit(ch)==false){if(ch=='-')f=-1;ch=getchar();}
	while(isdigit(ch)!=false){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
	return x*f;
}


long long select_prime(){
	long long topri=0;
	for(int i=2;i<=MAXN;i++){
		if(ispri[i]==false)pri[++topri]=i;
		for(int j=1;j<=topri&&pri[j]*i<=MAXN;j++){
			ispri[pri[j]*i]=true;
			if(i%pri[j]==0)break;//特色哦!!!好棒捏!!!
		}
	}
	return topri;
}

int main(){
	long long n=select_prime();
	//printf("%d",ispri[n]);
	for(int i=1;i<=45;i++){
		printf("%d\n",pri[i]);
	}
}
 
posted @ 2023-04-06 15:06  nono_ttaa  阅读(37)  评论(0)    收藏  举报