篩選法查詢100以內的素數

2021-08-30 04:40:42 字數 758 閱讀 7633

篩選法:是指從小到大篩去乙個已知素數的所有倍數。例如:根據2,我們篩選去4,6,8,....,98,100等數,然後根據3,我們可以篩選9,15,...99等數(注意此時6、12等數早就被篩去了),由於4被篩去了,下乙個用於篩選的素數是5,以此類推,最後剩餘的就是100以內的素數。

首先定義乙個int型別的陣列int a,初始化整個陣列,全部初始化為1,第二步雙重迴圈,從2開始,所有2的倍數都標記為0,所有3的倍數也標記為0;然後 是 4,但因為4已經被標記為0了,跳過;接著是5,直到所有的數都迴圈過一遍。

package book;

/** * 利用篩選法查詢100以內的素數

*/public class jiou

for (i = 2; i < 101; i++)

j = j + i;}}

} for (i = 2; i < 101; i++)

if (a[i] != 0) // 所有不為0的都是素數

當然求素數的方法也有很多種,下面用開根號的辦法解答:

package book;

public class jiou

if (j > k)

} }}

篩選法求100以內的素數

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

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

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

篩選法求n以內素數(質數)

設定乙個標誌陣列isprime,isprime i 的值是1就表示i是素數。開始陣列元素值全部為1劃掉k的倍數,就是把isprime 2 k isprime 3 k 置成0最後檢查isprime陣列,輸出isprime i 為1的那些i include include using namespace...