用筛选法求1000内的素数

1.先将1挖掉
2.用2除它以后的各个数,把能被2整除的数挖掉
3.依次处理3,4,5,6------sqrt(n)的数
4.挖掉的数设为0,不为0的数就是素数。(用数组存储)

#include<stdio.h>
#include<math.h>


int main(void){

    int number[1000];
    for(int i=0;i<1000;i++)
        number[i]=i+1;

    number[0]=0;//delete 1 1 is not prime.


        for(int i=1;i<sqrt(1000);i++){
            if(number[i]==0)
                continue;
             for(int j=i+1;j<1000;j++){
                if(number[j]%number[i]==0)
                    number[j]=0;
            }
        }

        printf("primes are ");
        for(int i=0;i<1000;i++){
            if(number[i]!=0)
                printf("%d ",i+1);
        }

    printf("\n");
}
posted @ 2024-04-26 11:09  zhongta  阅读(95)  评论(0)    收藏  举报