step1: 初始化乙個a陣列,從a[2] 到a[100]以內都為自己。
step2:對每個數,如果可以被2,3,5,7,11,13..(素數)整除則該數設為0,(因為素數的倍數是可以被除1和本身以外的其它數整除,是合數)。
step3:列印出所有非0的數,即為素數。
**改自愛課程《c語言程式設計》--蘇小紅老師:
#include #include using namespace std;
const int n = 100;
int main()
for(int i = 2; i <= sqrt(n); i++)
} }//output
int cnt = 0; // count number
for(int i = 2; i <= n; i++)
} cout << endl << endl;
cout << "the number of prime between 2~" << n << " is " << cnt << endl;
return 0;
}
列印結果:
用篩選法求100以內的的素數
篩選法是指埃拉託色尼 eratosthenes 篩選,埃拉託色尼是古希臘的著名數學家。他採取的方法是,先寫下1到1000的全部整數,然後逐個判斷它們是否素數,找出乙個非素數,就把它挖掉,最後剩下的就是素數。1.先挖掉1 2.用下乙個未被挖掉的數p除p後面各數,把p的倍數挖掉 3.檢查p是否小於根號n...
篩選法查詢100以內的素數
篩選法 是指從小到大篩去乙個已知素數的所有倍數。例如 根據2,我們篩選去4,6,8,98,100等數,然後根據3,我們可以篩選9,15,99等數 注意此時6 12等數早就被篩去了 由於4被篩去了,下乙個用於篩選的素數是5,以此類推,最後剩餘的就是100以內的素數。首先定義乙個int型別的陣列int ...
篩選法求n以內素數(質數)
設定乙個標誌陣列isprime,isprime i 的值是1就表示i是素數。開始陣列元素值全部為1劃掉k的倍數,就是把isprime 2 k isprime 3 k 置成0最後檢查isprime陣列,輸出isprime i 為1的那些i include include using namespace...