查找1到1千万之间的素数

#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千万之间的代码

猜你喜欢

转载自blog.csdn.net/d1306937299/article/details/83625630