zoukankan      html  css  js  c++  java
  • 筛选法求素数

     
     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;
    }

  • 相关阅读:
    placement new小结
    template template parameter 模板模板参数
    windows下创建和删除软链接
    gcc下载地址
    map的erase函数小结
    typedef函数指针
    宏定义条件编译中使用多条件
    关于c++模板特例化测试
    tolua使用
    c++多态
  • 原文地址:https://www.cnblogs.com/Skyxj/p/3221881.html
Copyright © 2011-2022 走看看