素数处理

素数

==

如何用c++筛选数列中素数

1.判断素数

======

bool isPrime(int n){
    if(n<=1)return false;
    int sqr=(int)sqrt(1.0*n);    //sqrt是开根号的意思,需要头文件math.h,它只接受浮点型需要1.0* 
    for(int i=2;i//比从直接判断到n时间复杂度小很多 
        if(n%i==0)return false;
    }
    return true;
} 

2.素数表的获取

const int maxn=101;
int prime[maxn],pNum=0;// prime 数组存放所有的素数,pNum表示素数的个数
bool p[maxn]={0};//p[i]=true表示i是素数
void Find_Prime(){
    for(int i=1;iif(isPrime(i)==true){
            prime[pNum++]=i;
            p[i]=true;
        }
    }
} 

3.素数表的筛选

const int maxn=101;
int prime[maxn],pNum=0;
bool p[maxn]={0};
void Find_Prime()
{
    for(int i=2;iif(p[i]==false){     //如果i是素数
        prime[pNum++]=i;
        for(int j=i+i;jtrue;    //筛去i的所有倍数 
        } 
        }
    }
 } 

你可能感兴趣的:(知识就是力量)