C語言 判斷乙個數是否素數的函式

2021-10-13 22:59:20 字數 525 閱讀 6802

1. 從素數的定義下手

int

prime

(int x)

for(i=

2;i)//這裡是「<」而非「<=」.證明了從1到它本身-1都沒有其他因數了

return0;

}

2. 從素數的定義的延申下手——「根據乘法的特性,可知若從2開始遍歷到被判斷數的平方根都沒有找到能被整除的數,則這個數一定為素數。」

int

prime

(int x)

for(i=

2;i<=k;i++

)return0;

}

3. 從素數的定義的延申下手——「素數的乙個特點,就是它總是等於 6x-1 或者 6x+1,其中 x 是大於等於1的自然數。」當然,2和3除外。

只是大概將這種方法的思路說出來,感覺沒有第2種來得快,具體實現的**就沒有附上了。

C語言判斷乙個數是否為素數

素數又稱質數。所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2 16的任一整數整除。思路1 因此判斷乙個整數m是否是素數,只需把m被 2 m 1 之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數。思路2 另外判斷方法還可以簡化。m不必被 2 m 1 ...

判斷乙個數是否為素數

判斷乙個數n是否是素數,只需要判斷它是否能被2到n之間的數整除就行了,若不能被整除,則說明是素數。考慮到某數大於n 2時,n不可能被該數整除,故只需遍歷2 n 2即可。更進一步,由合數定理可知,若乙個數是合數,則它的最小質因數必小於等於該數的平方根,由此可得更為高效的 如下 include incl...

判斷乙個數是否是素數

素數釋義 曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 public boolean isprime int n for int i 2 i從2開始,一直到小於其自身,依次判斷能否被n整除即可,能夠整除則不是質數,否則是質數...