算法基礎-求1000以內的質數


 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 }

找一些簡單的數學算法敲一敲。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM