Sieve method prime generator

From , 3 Years ago, written in C, viewed 194 times.
URL https://pastebin.vip/view/850af92f
  1. /*筛法素数产生器
  2. 语法:result=prime(int a[],int n);
  3. 参数:
  4. a[]:  用于返回素数的数组
  5. n:    产生n以内的素数,按升序放入a[]中
  6. 返回值:    n以内素数的个数
  7. 注意:
  8.         其中W[],B[]已知,W[i]>0且W[i]与W[j]互质, 求a
  9. */
  10.  
  11. int prime ( int a[],int n )
  12. {
  13.         int i,j,k,x,num,*b;
  14.         n++;
  15.         n/=2;
  16.         b= ( int * ) malloc ( sizeof ( int ) * ( n+1 ) *2 );
  17.         a[0]=2;
  18.         a[1]=3;
  19.         num=2;
  20.         for ( i=1; i<=2*n; i++ )
  21.                 b[i]=0;
  22.         for ( i=3; i<=n; i+=3 )
  23.                 for ( j=0; j<2; j++ )
  24.                 {
  25.                         x=2* ( i+j )-1;
  26.                         while ( b[x]==0 )
  27.                         {
  28.                                 a[num++]=x;
  29.                                 for ( k=x; k<=2*n; k+=x )
  30.                                         b[k]=1;
  31.                         }
  32.                 }
  33.         return num;
  34. }
  35.  

Reply to "Sieve method prime generator"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website