#include<stdlib.h>
#include<string.h>
#include <stdio.h>
#include<stdbool.h>
int searchprime(int num,int *out)
{
int pn=0;
bool *mask=new bool[num+1];
for(int i=2;i<=num;i++)
if(!mask[i])
{
out[pn++]=i;
if(i<32767)
for(int j=i*i;j<=num;j+=i)
mask[j]=true;
}
delete []mask;
return pn;
}
int main()
{
int *out=new int[664579];
printf("搜索1 ~ 10000000......");
int num=searchprime(10000000,out);
printf("找到%d个素数,最后一个素数是%d.\n",num,out[num-1]);
delete []out;
return 0;
}
查找1到1千万之间的代码