埃拉托斯特尼篩法
【1】埃拉托斯特尼篩法,簡稱埃氏篩或愛氏篩,是一種由希臘數(shù)學家埃拉托斯特尼所提出的一種簡單檢定素數(shù)的算法。
【2】王元說數(shù)論上的篩法都是建立在埃拉托斯特尼篩法的改進方法。
【3】步驟:
要得到自然數(shù)N以內(nèi)的全部素數(shù),必須把不大于N的所有素數(shù)的倍數(shù)剔除,剩下的就是素數(shù)。
給出要篩數(shù)值的范圍,找出以內(nèi)的素數(shù)。
先用2去篩,即把2留下,把2的倍數(shù)剔除掉;
再用下一個質(zhì)數(shù),也就是3篩,把3留下,把3的倍數(shù)剔除掉;
接下去用下一個質(zhì)數(shù)5篩,把5留下,把5的倍數(shù)剔除掉;
........
不斷重復(fù)下去......。
詳細列出算法如下:
列出2以后的所有序列:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
標出序列中的第一個素數(shù),也就是2,序列變成:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
將剩下序列中,劃掉2的倍數(shù),序列變成:
2 3 5 7 9 11 13 15 17 19 21 23 25
如果這個序列中最大數(shù)小于最后一個標出的素數(shù)的平方,那么剩下的序列中所有的數(shù)都是素數(shù),否則回到第二步。
本例中,因為25大于2的平方,我們返回第二步:
剩下的序列中第一個素數(shù)是3,將主序列中3的倍數(shù)劃掉,主序列變成:
2 3 5 7 11 13 17 19 23 25
我們得到的素數(shù)有:2,3
25仍然大于3的平方,所以我們還要返回第二步:
序列中第一個素數(shù)是5,同樣將序列中5的倍數(shù)劃掉,主序列成了:
2 3 5 7 11 13 17 19 23
我們得到的素數(shù)有:2,3,5 。
因為23小于5的平方,跳出循環(huán).
結(jié)論:2到25之間的素數(shù)是:2 3 5 7 11 13 17 19 23。