所謂「篩選法」指的是「埃拉託色尼(eratosthenes)篩法」。他是古希臘的著名數學家。他採取的方法是,在一張紙上寫上1到100全部整數,然後逐個判斷它們是否是素數,找出乙個非素數,就把它挖掉,最後剩下的就是素數。
先將所有範圍內的正整數列出,構成數集a。
(1) 從a中刪去1;
(2) 從a中刪去2的整數倍;
(3) 從a中刪去3的整數倍;
(4) 從a中刪去5的整數倍;
… (n) 從a中刪去範圍k的開方(取整)的整數倍,過程結束。
求100以內所有質數。
#include
#include
void prime(int n, int result)
int j;
for(j = 2; j < sqrt(n); j++)
}} int main()
return
0;}
用篩選法求質數
file exam 1 1.c brief exam 1 1 用篩選法求100以內的質數 質數 prime number 又稱素數,有無限個。乙個大於1的自然數,除了1和它本身外,不能被其他自然數整除,換句話說就是該數除了1和它本身以外不再有其他的因數 否則稱為合數。根據算術基本定理,每乙個比1大的...
質數 篩選法
篩數法求素數 篩數法求素數的基本思想是 把從1開始的 某一範圍內的正整數從小到大順序排列,1不是素數,首先把它篩掉。剩下的數中選擇最小的數是素數,然後去掉它的倍數。依次類推,直到篩子為空時結束。public void printprimes int n 定義arr陣列來表示篩選出來的素數 boole...
求質數之Eratosthenes篩選法(C 版)
eratosthenes計算小於100000的素數質數 時間複雜度是o nloglogn 演算法原理 乙個合數總是可以分解成若干個質數的乘積,那麼如果把質數 最初只知道2是質數 的倍數都去掉,那麼剩下的就是質數了。二 步驟 1 先把1刪除 1既不是質數也不是合數 2 讀取佇列中當前最小的數2,然後把...