100以內的質數篩選法?
基本思想是:把從1開始的、某一范圍內的正整數從小到大順序排列,把不是素數的數全部賦值為0,最后只輸出不是零的數即素數。1不是素數,首先把它換為0。剩下的數中選擇最小的數是素數,然后把它的倍數全部換為0。依次類推,直到結束。
如有:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
1不是素數,換為0。剩下的數中2最小,是素數,然后把它的倍數全部換為0,余下的數是:
0 2 3 0 5 0 7 0 9 0
11 0 13 0 15 0 17 0 19 0
21 0 23 0 25 0 27 0 29 0
剩下的數中3最小,是素數,然后把它的倍數全部換為0,如此下去直到所有的數都被篩完,求出的素數為:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97