用筛选法求100以内的素数。

问题描述:

  用筛选法求100以内的素数。

算法分析:

  定义一个数组n[100],其中素数标为0,非素数标为1. 如果是2,3的倍数标记为0.

代码展示:

 1 #include<stdio.h>
 2 #define NUM 100
 3 int main(){
 4     int a[NUM+1];
 5     int i,j;
 6     for(i=2; i<=NUM; i++){        //初始化数组 
 7         a[i] = 1;
 8     } 
 9     for(i=2; i<=100; i++){        //标记非素数的数 
10         if(a[i] == 1){
11             for(j=2;i*j<=100;j++){
12                 a[i*j] = 0;
13             }
14         }
15     }
16     for(i=2; i<=100; i++){        //循环输出 
17         if(a[i] == 1)
18             printf("%d ",i);
19     }
20     return 0; 
21 }

运行结果:

0011 用筛选法求100以内的素数_初始化