埃拉託斯特尼 Eratosthene 篩法

2021-06-28 06:01:19 字數 708 閱讀 6299

下面是**:

/* 功能:將1-n的素數輸出

使用了埃拉託斯特尼(eratosthene)篩法

*/ 

#include

#include

using namespace std;

int prime[10000000];//存放需要篩選數

int sieve (int *prime,int n,int k)//n是1-n這個範圍,k是當前把prime[k]作為篩子

}k++;

//如果當前篩子數是0,則移到下一位

while (!prime[k])

return k;}

int main()

while (prime[k]<= sqrt(n))

for (int i = 2; i<= n; i++)}}

return 0;}

當然,這是乙個非常初級的版本,如果你想找出你給定陣列的素數,只要稍微改正即可。

埃拉託斯特尼篩法

質數又稱素數。指在乙個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。怎麼判斷n以內的哪些數是質數呢?厄拉多塞是一位古希臘數學家,他在尋找素數時,採用了一種與眾不同的方法 先將2 n的各數放入表中,然後在2的上面畫乙個圓圈,然後劃去2的其他倍數 第乙個既未畫圈又沒有被劃去的數是3,...

埃拉託斯特尼篩法

埃拉託斯特尼篩法,簡稱埃氏篩或愛氏篩,是一種由希臘數學家埃拉託斯特尼所提出的一種簡單檢定素數的演算法。要得到自然數n以內的全部素數,必須把小於等於根號n的所有素數的倍數剔除,剩下的就是素數。這是什麼意思呢?以100為例,我們先建立乙個擁有101 0 100 個數字的陣列。先使用最小的素數2,將所有2...

埃拉託斯特尼篩法 檢定素數

埃拉託斯特尼篩法描述 要得到自然數n以內的全部素數,必須把不大於 給出要篩數值的範圍n,找出以內的素數。先用2去篩,即把2留下,把2的倍數剔除掉 再用下乙個質數,也就是3篩,把3留下,把3的倍數剔除掉 接下去用下乙個質數5篩,把5留下,把5的倍數剔除掉 不斷重複下去.題目 統計找出一千萬以內,一共有...