篩選法求素數

2021-05-01 01:02:25 字數 479 閱讀 9242

題目:求100以內的所有素數。

求素數的演算法常考,篩選法求素數不常見。定義長度為101的int陣列a[101],初始化為1。依次測試1到100的所有數字是否為素數。若i為合數,則a[i]=0。篩選完畢後,所有非0元素a[i]所對應的數字i為素數。

**:#include

using namespace std;

int main()

int a[101],i,j;

for(i=0;i<101;i++) a[i]=1;

for(i=2;i<101;i++)

if(a[i])

for(j=i+1;j<101;)

if(j%i==0)

a[j]=0;

j=j+1;

for(i=2;i<101;i++)

if(a[i])   printf("%d/t",a[i]);

getchar();

return 0;    

篩選法求素數

篩選法求素數 質數 prime number 又稱素數。乙個 大於1的自然數 除了1和它本身外,不能被其他自然數 質數 整除,換句話說就是該數除了1和它本身以外不再有其他的因數 否則稱為合數 一 一般求素數的方法 乙個數n的因子不會超過n,但是如果我們知道數n的乙個因子a後,另乙個因子b b n a...

篩選法求素數

一 素數的定義 對於素數的定義,維基百科上給出如下一段話 素數指在大於1的自然數中,除了1和此整數自身外,無法被其他自然數整除的數。比1大但不是素數的數稱為合數。二 利用電腦程式,很容易就可以得到不太大的素數。以c語言為工具來描述常見的判斷素數的函式 int isprime int n 這個函式並不...

篩選法求素數

篩選法求素數。線性時間複雜度。將合數都標記,剩下的就是素數。出現乙個數,則把已這個數為因子的數都標記為合數。如2,所以4,6,8 10.都標記為合數 如3,所以9,12,15.都標記為合數 如4,所以16,20,24.都標記為合數 即,若i是素數,則從 j i i 開始,把 j i j 2i j 3...