问题描述:
用筛选法求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 }
运行结果: