1 //篩選1000以內的所有質數 2 //說明:除了自身以外,無法被其它整數整除的數稱之為質數。 3 // 4 #include <stdio.h> 5 #include <stdlib.h> 6 #define N 1000 7 8 int main(void) { 9 int i, j; 10 int prime[N + 1]; 11 //初始化數組都等於1 12 for( i = 2; i <= N; i++){ 13 prime[i]=1; 14 } 15 //嵌套for循環篩選出能整除的相對於的數組至於0 16 for (i = 2; i * i <= N; i++) { 17 if (prime[i] == 1) { 18 for (j = 2 * i; j <= N; j++) { 19 if (j % i == 0) 20 prime[j] = 0; 21 } 22 } 23 } 24 //遍歷數組、數組還等於1的是質數打印出來 25 for (i = 2; i < N; i++) { 26 if (prime[i] == 1) { 27 printf("%4d", i); 28 //隔幾個換行 29 if ((i % 16) == 0){//不知道為什么沒有起作用 30 printf("\n"); 31 } 32 } 33 } 34 printf("\n"); 35 return 0; 36 }
找一些簡單的數學算法敲一敲。