篩選法求素數(1)

2021-08-21 13:53:24 字數 505 閱讀 2645

在c++裡面開乙個bool型的陣列,bool型(true=1,false=0);

#include

#include

#define n 10001

int main()

{bool prime[n];

long long  i,j;

for(i=2; iprime[2]=1;

for(i=2;i1.從n個數中找出偶數和奇數,找到偶數用false標記,找到奇數用ture標記(因為下面還要繼續找它的倍數進行排除)

2.從奇數中開始派出是能夠整出的數,從i=3開始,不能從1開始,如果從1開始,第二層的for迴圈裡面每次都會加1,會將1到n全部用false標記,此時結果是完全錯誤的,此時每次都加上i,標記的是奇數整數倍而且不包括它的本身,但是會重複標記;

3.輸出下標即可;

注:此時至於為什麼寫到sqrt(n)呢,我認為在不是在小於sqrt(n)之前的數,只要它正好整除,便能在sqrt(n)後面找到與之對應的數,這樣可以避免多找一些數;

篩選法求素數

題目 求100以內的所有素數。求素數的演算法常考,篩選法求素數不常見。定義長度為101的int陣列a 101 初始化為1。依次測試1到100的所有數字是否為素數。若i為合數,則a i 0。篩選完畢後,所有非0元素a i 所對應的數字i為素數。include using namespace std i...

篩選法求素數

篩選法求素數 質數 prime number 又稱素數。乙個 大於1的自然數 除了1和它本身外,不能被其他自然數 質數 整除,換句話說就是該數除了1和它本身以外不再有其他的因數 否則稱為合數 一 一般求素數的方法 乙個數n的因子不會超過n,但是如果我們知道數n的乙個因子a後,另乙個因子b b n a...

篩選法求素數

一 素數的定義 對於素數的定義,維基百科上給出如下一段話 素數指在大於1的自然數中,除了1和此整數自身外,無法被其他自然數整除的數。比1大但不是素數的數稱為合數。二 利用電腦程式,很容易就可以得到不太大的素數。以c語言為工具來描述常見的判斷素數的函式 int isprime int n 這個函式並不...