如果自然數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的整數倍 ...