5 判斷乙個數是否為質數(素數)

2021-10-07 06:30:40 字數 852 閱讀 5851

鍵盤輸入乙個數, 判斷是否為素數

最直觀的想法就是用1-n 中間的數依次除, 有能被整除的那就不是了。這樣的時間複雜度是o(n).

我們可以總結一下:乙個數字, 如果它是兩個數字的乘機,那麼它的分解因子怎麼分布呢?

15 = 3 * 5, 3 5 都小於 15/2

16 = 2 * 8 2 8 小於等於 16/2這應該就是最極端的了吧

綜上, 我們就可以只試 2- n/2 之間的數就可以了

我們進一步總價一下:

16 = 2 * 8

= 4 * 4

= 8 * 2

24 = 2 * 12

= 3 * 8

= 4 * 6

= 4. 8989 * 4.8989

= 6 * 4

= 8 * 3

= 12 * 2

我們發現, 被乘數 增加, 乘數就減小。 過了某乙個界限, 其實就是乘數和被乘數互換位置。 鑑於乘法的交換律。 其實就是一樣的了。那麼這個界限是什麼呢。最理想的時候也就是 n的開方

判斷乙個數是否為質數(素數)

從鍵盤上輸入乙個數,判斷這個是數是否為質數 素數 質數 素數 除了1和它本身不能被其它數整數的數。如果 i,n 都是整數,那麼 i n 0,那麼就稱 i 是 n 的倍數,n 是 i 的約數或者因數,n 整除 i,i 被 n 整除。演算法 判斷乙個數是否質數 素數 只需判斷有沒有乙個數可以整除這個數就...

java判斷乙個數是否為素數 質數

質數 prime number 又稱素數,定義為乙個大於1的自然數,除了1和它本身外,不能被其他自然數整除,換句話說就是該數除了1和它本身以外不再有其他的因數。第乙個思路 假如我們需要判斷數字是33,因為所有的數都可以被1整除,所以我們從2開始,一直到33 1 32進行遍歷,看看這個數可以被哪些數整...

ruby判斷乙個數是否為質數 素數 示例

ruby判斷乙個數是否程式設計客棧為質數 質數程式設計客棧又稱素數。乙個大於1的自然數,如果除了1和它自身外,不能被其他自然數整除的數 除0以外 否則稱為合數 根據算術基本定理,每乙個比1大的整數,要麼本身是乙個質數,要麼可以寫成一系列質數的乘積 而且如果不考慮這些質數在乘積中的順序,那麼寫出來的形...