素數又稱質數,是指除了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,停止。這時就可以換一次...