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

2021-07-25 03:45:53 字數 489 閱讀 1007

所謂「篩選法」指的是「埃拉託色尼(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,然後把...