問題描述:
用篩選法求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 }
運行結果: