算法如下:
#include<stdio.h> #include<math.h> void Sieve(int n) {int p,j,i;int A[n+1],L[n+1];for(p=2;p<=n;p++)A[p]=p;for(p=2;p<=sqrt(n);p++){if(A[p]!=0){j=p*p;while(j<n){A[j]=0;j=j+p;}}}i=0;for(p=2;p<=n;p++){if(A[p]!=0){L[i]=A[p];i++;}}for(p=0;p<i;p++)printf("%d ",L[p]);printf("\n"); } void main() {Sieve(25); }