線性篩素數 模板
阿新 • • 發佈:2018-12-17
#include"cstdio" #include"cstring" #include<iostream> using namespace std; #define MAX 10000//求MAX範圍內的素數 long long su[MAX],cnt; bool isprime[MAX]; void prime() { cnt=1; memset(isprime,1,sizeof(isprime));//初始化認為所有數都為素數 isprime[0]=isprime[1]=0;//0和1不是素數 for(long long i=2;i<=MAX;i++) { if(isprime[i]) su[cnt++]=i;//儲存素數i for(long long j=1;j<cnt&&su[j]*i<=MAX;j++) { isprime[su[j]*i]=0;//篩掉小於等於i的素數和i的積構成的合數 } } } int main() { prime(); for(long long i=1;i<cnt;i++) printf("%d ",su[i]); return 0; }