用篩選法求100之內的素數

2021-09-26 11:11:16 字數 670 閱讀 8144

所謂篩選法,指的是"埃拉託色尼篩法",採取的方法是,在一張紙上寫上1-100 全部的整數

然後逐個判斷他們是否為素數,找出乙個非素數,就把他挖掉,最後剩下的就是素數

具體做法如下所示:

先把1挖掉,因為1不是素數

用2除它後面的各個數,能把2整除的數挖掉,即就是把2的倍數挖掉

用3除它後面的各個數,把3的倍數全部挖掉

分別用4,5,各數作為除數除這些數後面的各個數。這個過程一直進行到在除數後面的數已經全部被挖掉為止

事實上可以簡化,如果需要找到1~n範圍內的素數表,只需要進行到除數為根號下n(取其整數即可以)

例如對1~50,只需進行到將7作為除數即可

用計算機解此題,可以定義乙個陣列,a[1]a[n]分別代表這1n個數

如果檢查出陣列a的某乙個元素的值是非素數,就使得它變為0,最後剩下的不為0的就是素數

#include

#include

intmain()

printf

("\n");

for(i =

2, n =

0; i <=

100; i++)if

(n ==10)

}printf

("\n");

return0;

}

用篩選法求100之內的素數

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

篩法求素數 求100之內的素數

素數 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。篩法求素數,需要對素數和非素數做出不同的標記,或者只標記非素數 素數 現用0標記非素數,素數不標記。引用陣列,使0 100與陣列元素一 一相對應 0即a 0 1即a 1 2即a 2 注意特例,1 即a 1 不是素數,首先標記為0 剩下...

用篩選法求100以內的的素數

篩選法是指埃拉託色尼 eratosthenes 篩選,埃拉託色尼是古希臘的著名數學家。他採取的方法是,先寫下1到1000的全部整數,然後逐個判斷它們是否素數,找出乙個非素數,就把它挖掉,最後剩下的就是素數。1.先挖掉1 2.用下乙個未被挖掉的數p除p後面各數,把p的倍數挖掉 3.檢查p是否小於根號n...