查找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千萬之間的代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章