素数打表

来源:互联网 发布:js单选按钮事件 编辑:程序博客网 时间:2024/06/11 06:13
//高效率的打表看不懂..来个简单的模板void init_prime(){int i, j;for(i = 2;i <= sqrt(1000002.0); ++i){if(!prime[i])for(j = i * i; j < 1000002; j += i)prime[j] = 1;}j = 0;for(i = 2;i <= 1000002; ++i)if(!prime[i]) prime[j++] = i;}


//素数打表#include<stdio.h>#include<math.h>int p[100000];int pn[100000];void init_num(){int i,j,n;for(i=0;i<100000;i++)p[i]=1;n = (int)sqrt(1000000.00);for(i=2;i<=n;i++){for(j=i*i;j<=n;j+=i){p[j]=0;}}j=1;    for(i=1; i<=n; i++)  //把素数存储入pn[N],下表从1开始    {        if(p[i])        {            pn[j++]=i;        }    }}int main(){int i;init_num();//打印前100个素数for(i=1;i<=100;i++)printf("%d ",pn[i]);return 0;}


原创粉丝点击