C語言判斷素數(兩種方法)

2021-10-07 20:25:45 字數 1228 閱讀 6810

素數又稱質數,是指除了1和它本身外,不能被其他任何整數整除的數,例如17就是素數,因為它不能被2~16任意整數整除。

思路1:判斷乙個數是否為素數,只需把m被2~m-1之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數。

思路2:另外判斷方法可以簡化,m只需被2~√m之間的每乙個整數去除就可以了,如果m不能被2-√m之間的每個整數去除,m必定是素數。例如判斷17是否是素數,只需使17被2-4之間的每個整數去除,由於都不能整除,故17是素數。

兩種思路的**如下

思路1的**:

#include

intmain()

if(a==0)

printf

("%d is a prime\n"

,p);

else

printf

("%d is not a prime\n"

,p);

return0;

}

思路2的**:

#include

#include

intmain()

if(a==0)

printf

("%d is a prime\n"

,p);

else

printf

("%d is not a prime\n"

,p);

return0;

}

思路2也可寫成:

#include

#include

intmain()

//如果完成所有迴圈,那麼p為素數

if(i>m)

printf

("%d is a prime\n"

,p);

else

printf

("%d is not a prime\n"

,p);

return0;

}

測試的資料如下:

素數因子兩種方法的效率

給出乙個整數n,先找到最小質數k,然後按照下面步驟完成 1 如果這個質數恰等於 小於的時候,繼續執行迴圈 n,則說明分解質因數的過程已經結束,另外 列印出即可。2 但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整數n.重複執行第二步。3 如果n不能被k整除,則用k 1作為k的值,重複...

判斷素數的4種方法(C語言)

判斷素數的4種方法素數定義 質數又稱素數。指整數在乙個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。換句話說,只有兩個正因數 1和自己 的自然數即為素數。比1大但不是素數的數稱為合數,1和0既非素數也非合數。素數在數論中有著很重要的作用。一言不合直接上 include inclu...

C語言兩種方法編寫快排

快排 啦啦,今天來寫寫快排,今天天氣晴朗,又是快樂的一天。首先我要寫的兩種方法只有一點點不同。舉例說明一下吧 以3 5 7 2 1為例 從小到大排序 第一種 fun1 進行如下操作 以3為基準值,先從右邊開始找,1 3,右邊停止尋找,再從左邊開始,3等於3,i 繼續找,5 3,停止。這時就可以換一次...