素數的求法

2021-06-26 19:27:37 字數 655 閱讀 9688

1.素數的定義

只能被1和它自己整除的自然數稱為素數,特別規定1不屬於素數。

2.求法

(1)根據素數的定義,很明顯,如果乙個數是素數<==>它的因子只包含1和它本身。

因此可以根據判別某個數的因子的方法來判斷其是否是素數。   

intisprime(

intn)

}return1;

}

(2)但是如果要求求出1000000以內的所有素數,上面的方法效率就很低,因此通常採用篩選法去求素數。

篩選法:對於乙個數n,如果是素數,那麼2*n,3*n,4*n,必定不是素數。 

bool

isprime[

1000001

];int

prime[

80000

];int

num=0;

void

getprime() 

//用篩選法求算素數

for(i=2

;i<=

1000

;i++

) //

如果isprime[i]==true,即i是素數,那麼i,2*i,3*i必定不是素數

}for(i=

2;i<

1000001

;i++)}

}

C 實現素數的求法

素數定義 簡單來說,素數就是正能被1和它自身整除的數。例如2,3,5,7等都是素數 實現 1 最簡單的一種方法判斷乙個數是不是素數n,就是用2 n 1 去分別除這個數,如果有乙個能被整除,則該數不是素數,否則該數是素數。2 優化 不用去判斷2 n 1 只需要判斷2 n 2或者2 n開平方即可 inc...

素數快速求法 篩法求素數

在做題的過程中,我們會遇到一些需要求素數的要求,如果對於資料範圍很小的資料,我們有最簡單但是最耗時間的雙for迴圈巢狀法。下面舉個例子。question get the primes from 1 to 100 and print them.素數求法 基礎for迴圈法 include include...

C語言素數的多種求法

include include int isprime int n 判斷數n是否為素數 int i for i 2 i i n i 只需要求2到根號n是否有n的因子即可。return1 int main printf nthe number of primes is d.n count 主要 段 結...