筛选法求素数

it2024-10-28  15

C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51   筛法素数产生器 语法:result=prime( int  a[], int  n); 参数: a[]: 用于返回素数的数组 n: 产生n以内的素数,按升序放入a[]中 返回值: n以内素数的个数 注意: 其中W[],B[]已知,W[i]>0且W[i]与W[j]互质, 求a 源程序: int  prime( int  a[], int  n) {      int  i,j,k,x,num,*b;     n++;     n/= 2 ;     b=( int  *)malloc( sizeof ( int )*(n+ 1 )* 2 );     a[ 0 ]= 2 ;     a[ 1 ]= 3 ;     num= 2 ;      for (i= 1 ; i<= 2 *n; i++)         b[i]= 0 ;      for (i= 3 ; i<=n; i+= 3 )          for (j= 0 ; j< 2 ; j++)         {             x= 2 *(i+j)- 1 ;              while (b[x]== 0 )             {                 a[num++]=x;                  for (k=x; k<= 2 *n; k+=x)                     b[k]= 1 ;             }         }      return  num; }

转载于:https://www.cnblogs.com/Skyxj/p/3221881.html

相关资源:基于Jupyter 使用列表实现筛选法求素数(python)
最新回复(0)