用篩選法求質數

2021-07-06 05:32:48 字數 1553 閱讀 9204

/// @file exam_1_1.c

/// @brief exam_1_1 用篩選法求100以內的質數

/**質數(prime number)又稱素數,有無限個。

乙個大於1的自然數,除了1和它本身外,不能被其他自然數整除,

換句話說就是該數除了1和它本身以外不再有其他的因數;否則稱為合數。

根據算術基本定理,每乙個比1大的整數,要麼本身是乙個質數,

要麼可以寫成一系列質數的乘積;而且如果不考慮這些質數在乘積中的順序,

那麼寫出來的形式是唯一的。最小的質數是2。

*/#include #include #include #include /// 用cl編譯, 不知道為啥不能使用 bool 型別, 自己定義乙個

/// error c2065: 'bool' : undeclared identifier

/// bool 不是c語言內建的資料型別麼?

求質數 篩選法(埃拉託色尼篩法)

所謂 篩選法 指的是 埃拉託色尼 eratosthenes 篩法 他是古希臘的著名數學家。他採取的方法是,在一張紙上寫上1到100全部整數,然後逐個判斷它們是否是素數,找出乙個非素數,就把它挖掉,最後剩下的就是素數。先將所有範圍內的正整數列出,構成數集a。1 從a中刪去1 2 從a中刪去2的整數倍 ...

質數 篩選法

篩數法求素數 篩數法求素數的基本思想是 把從1開始的 某一範圍內的正整數從小到大順序排列,1不是素數,首先把它篩掉。剩下的數中選擇最小的數是素數,然後去掉它的倍數。依次類推,直到篩子為空時結束。public void printprimes int n 定義arr陣列來表示篩選出來的素數 boole...

求質數之Eratosthenes篩選法(C 版)

eratosthenes計算小於100000的素數質數 時間複雜度是o nloglogn 演算法原理 乙個合數總是可以分解成若干個質數的乘積,那麼如果把質數 最初只知道2是質數 的倍數都去掉,那麼剩下的就是質數了。二 步驟 1 先把1刪除 1既不是質數也不是合數 2 讀取佇列中當前最小的數2,然後把...