素数打表

来源:互联网 发布:ven .js 编辑:程序博客网 时间:2024/06/15 00:31
希望得到高效的素数表 以下是粘贴别人的 自己运行了一下 大概知道流程 但还是没有太看懂
#include<iostream>#include<cstring>#include<cstdio>#include<ctime>#include<algorithm>using namespace std;#define M 100bool visit[10100000];int prime[10000000];void table(){    memset(visit,true,sizeof(visit));    int num = 0;    for (int i = 2; i <= M; ++i)    {        if (visit[i] == true)        {            num++;            prime[num] = i;        }        for (int j = 1; ((j <= num) && (i * prime[j] <= M));  ++j)        {            visit[i * prime[j]] = false;            if (i % prime[j] == 0) break; //点睛之笔        }    }}int main(){    memset(prime, 0, sizeof(prime));    int count = 0;    table();    for(int i = 0; i <= M; ++i)        if(prime[i])        {            cout<<prime[i]<<" ";            count++;        }    cout<<endl;    cout<<"素数个数为:"<<count<<endl;}

原创粉丝点击