思想是这样的: 比如求100,000以内素数个数, 定义一个bool型变量(c里不能定义bool型),bool prime[100001](长度比10,000大1);当i%2==1时,prime[i]=true;否则,prime[i]=false;i=3,j=2*i,对下标为3的倍数的prime[j]赋false;i自增,重复第3步;total=0; if(prime[i]) total++。 memset(prime,true,sizeof(prime)); prime[0]=false; prime[1]=false; for(i=4;i<1300000;i+=2) prime[i]=false; for(i=3;i<1140;i+=2) if(prime[i]) for(j=i*2;j<1300000;j+=i) prime[j]=false;