埃拉託色尼篩法 c

2021-10-04 22:43:07 字數 515 閱讀 5408

如果自然數i為素數,則設a[i]為1,否則設為0.首先把陣列中的所有元素設為1,以表明沒有任何數已被證明是非素數。然後,把陣列中所對應索引處已證明是非素數(已知素數的倍數)的元素設為0.如果所有更小素數的倍數都已經設為0,a[i]仍然為1,則可知它是素數。

因為程式中所用的陣列由最簡單的元素型別—0和1組成的陣列,所以直接由位組成的陣列比整數組成的陣列更省空間。另外,如果n值過大,某些程式設計環境可能要求把陣列定義為全域性變數,我們可以動態地為它分配空間。

//   date:2020/4/12

// author:xiezhg5

#include

#define n 10000

intmain

(void

)return0;

}

#include

intmain

(int argc,

char

*ar**)

...}

埃拉託色尼篩法 質數檢驗

isprime x if x 1 return false for i 2 to x 1 if x i 0 return false false代表合數 return true true 代表質數 isprime x if x 2 return true if x 0 或 x 1 return fa...

埃拉託色尼篩法 來自 演算法 C語言實現

這個程式的功能是 如果自然數i是素數,則設a i 為1,否則設為0.首先把陣列中的所有元素設為1,否則設為0.首先把陣列中的所有元素設為1,已表明沒有任何數以被證明是非素數.然後,把陣列中所對應索引處已證明是非素數 已知素數的倍數 的元素設為0.如果所有更小素數的倍數都已設為0,a i 仍為1,則可...

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

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