首页 > 试题广场 >

求2~2000的所有素数.有足够的内存,要求尽量快。

[问答题]
求2~2000的所有素数.有足够的内存,要求尽量快。
//第一个函数判断一个数是否为素数
bool IsSu(int number){
    if(number==2 && number==3)
        return true;
    for(int i=2;i<=sqrt(number);i++){
        if(number%i==0){
            return false;
        }
    }
    return true;
}
void printSu(){
    for(int i=2;i<=2000;i++){
        if(IsSu(i))
            printf("%d ",i);
    }
    printf("\n");
}

发表于 2015-06-24 11:28:15 回复(1)
int findvalue[2000]={2};
static int find=1;
bool adjust(int value)
{
    assert(value>=2);
    if(value==2) 
        returntrue;
    for(int i=0;i<=find;i++)
    {
        if(value%findvalue[i]==0)
        return false;
    }
    findvalue[find++];
    return true;
}

发表于 2014-11-15 17:51:23 回复(0)