(譚c 5 1)篩選法求100之內的素數

2021-09-12 06:59:11 字數 594 閱讀 6144

篩選法指的是「埃拉託色尼(eratosthenes)篩選法」。他是古希臘著名數學家。他採取的方法是:在一張紙上寫上1~1000全部整數,然後逐個判斷他們是否為素數,找出乙個非素數就把他挖掉。最後剩下的就是素數。

具體做法:

先將1挖掉

用2去除它後面的個數,把能被2整除的數挖掉,即挖掉2的倍數

用3去除他後面的各個數,挖掉3的倍數

分別用4、5......各數作為除數去除這些數以後的各個數。這個過程一直進行到在除數後面的數已全部被挖掉為止。(事實上,可以簡化,如果需要找1~n範圍內的素數表,只需進行到除數為sqrt(n)取其整數)

上面的演算法可以表示為:

挖去1用下乙個未被挖去的數p去除p後面各數,挖掉p的倍數

檢查p是否小於根號n的整數部分,如果是,則返回2繼續執行,否則就結束

紙上剩下的數就是素數

#include #includeusing namespace std;

int main()

}for(int m=0;m<=100;m++)

if(a[m]!=0)

cout

}

用篩選法求100之內的素數

所謂篩選法,指的是 埃拉託色尼篩法 採取的方法是,在一張紙上寫上1 100 全部的整數 然後逐個判斷他們是否為素數,找出乙個非素數,就把他挖掉,最後剩下的就是素數 具體做法如下所示 先把1挖掉,因為1不是素數 用2除它後面的各個數,能把2整除的數挖掉,即就是把2的倍數挖掉 用3除它後面的各個數,把3...

用篩選法求100之內的素數

篩選法又稱篩法,具體做法是 先把n個自然數按次序排列起來。1不是質數,也不是合數,要划去。第二個數2是質數留下來,而把2後面所有能被2整除的數都劃去。2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3整除的數都劃去。3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。這...

篩選法求100以內的素數

step1 初始化乙個a陣列,從a 2 到a 100 以內都為自己。step2 對每個數,如果可以被2,3,5,7,11,13.素數 整除則該數設為0,因為素數的倍數是可以被除1和本身以外的其它數整除,是合數 step3 列印出所有非0的數,即為素數。改自愛課程 c語言程式設計 蘇小紅老師 incl...