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(" "); 31 } 32 } 33 } 34 printf(" "); 35 return 0; 36 }
找一些简单的数学算法敲一敲。