Eratosthenes“埃氏篩法”求1000以內的素數C++
阿新 • • 發佈:2019-01-24
“埃氏篩法”是一種高效的求N以內素數的演算法,時間複雜度為O(nloglogn),求1000以內素數的“埃氏篩法”程式碼實現如下:
#include<cstdio> #include<cmath> int num[1001] = {0}; int primeCount = 0; int prime[1001]; void findPrime() { for (int i = 2; i <= 1000; ++i) { if (!num[i]) { primeCount++; prime[primeCount] = i; for (int j = 2 * i; j <= 1000; j += i) { num[j] = 1; } } } } int main() { findPrime(); for (int i = 1; i < primeCount; ++i) { if (i&&i % 10 == 0) printf("%3d\n", prime[i]); else printf("%3d ", prime[i]); } }