c語言判斷素數(shù)的函數(shù)程序:
十余年的點軍網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整點軍建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“點軍網(wǎng)站設(shè)計”,“點軍網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
經(jīng)分析,以上代碼使用flag的值來判斷輸入的n是否為素數(shù),flag=1,n為素數(shù);flag=0,n不是素數(shù)。完善if條件語句,第一個if,主函數(shù)中的if調(diào)用函數(shù),需要填入一個參數(shù),即prime(n);第二個if,是判斷什么情況下flag=0,即輸入的整數(shù)不為素數(shù),即(n/i==0),余數(shù)為0,可以整除;最后返回flag的值,returnflag
但是經(jīng)過運行可以知道,n=4的時候,程序判斷4是素數(shù),明顯是錯誤的,n取0和1的時候同理,程序存在漏洞。分析得知,在定義函數(shù)的過程中,for循環(huán)條件語句,i=0,如果為負整數(shù),另加判斷條件,略)
#include stdio.h
int fun(int x)//
{
if(x2)
return 0;//返回0,非素數(shù)
for(int i=2;i*i=x;i++)
if(x%i==0)
return 0;
return 1;//返回1,素數(shù)
}
int main()
{
int n;
scanf("%d",n);
if(fun(n)==1)
printf("%d是素數(shù)\n",n);
else
printf("%d不是素數(shù)\n",n);
return 0;
}
1、首先需要打開vs軟件工程,準備好一個空白的C語言文件,引入頭文件,主函數(shù)中暫時沒有內(nèi)容:
2、這里開始編寫代碼,這里判斷素數(shù)需要用到平方根,所以要在頭文件中引入math庫,然后編寫判斷素數(shù)的函數(shù),函數(shù)有唯一的參數(shù)n,代表素數(shù)。判斷的依據(jù)是素數(shù)n只要不能被 2 到根號下n之 間任一整數(shù)整除,則n必定是素數(shù),最后在主函數(shù)中調(diào)用判斷素數(shù)的函數(shù)即可:
3、最后,編譯運行程序,在彈出的命令行中輸入17這個素數(shù),程序的打印結(jié)果是17是素數(shù),證明了程序的正確性。以上就是用C語言判斷素數(shù)的流程:
還有一個錯誤,C語言中沒有bool類型,默認返回值是0,你可以一個一個類型的函數(shù)檢測、float,沒有返回值時、double類型的函數(shù),你這個程序不只是邏輯不能那樣說,但是如果是long或者char型時,返回值就不是0了,如果是返回值int。
另外多說一句、算法錯了
素數(shù)又稱質(zhì)數(shù),所謂素數(shù)是指除了 1 和它本身以外,不能被任何整數(shù)整除的數(shù),例如17就是素數(shù),因為它不能被 2~16 的任一整數(shù)整除。
思路1、判斷一個整數(shù)m是否是素數(shù),只需把 m 被 2 ~ m-1 之間的每一個整數(shù)去除,如果都不能被整除,那么 m 就是一個素數(shù)。
思路2、判斷方法還可以簡化。
m 不必被2~m-1之間的每一個整數(shù)去除,只需被2~√m之間的每一個整數(shù)去除就可以了。如果 m 不能被2~√m?間任一整數(shù)整除,m必定是素數(shù)。例如判別17是是否為素數(shù),只需使17被2~4之間的每一個整數(shù)去除,由于都不能整除,可以判定17是素數(shù)。
原因:因為如果m能被2~m-1之間任一整數(shù)整除,其二個因子必定有一個小于或等于√m,另一個大于或等于√m。
例如16能被2、4、8整除,16=2*8,2小于 4,8大于4,16=4*4,4=√16,因此只需判定在2~4之間有無因子即可。
兩種思路的代碼請看解析。
拓展資料:
素數(shù)(prime number)又稱質(zhì)數(shù),有無限個。素數(shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)。
C語言是一門面向過程、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設(shè)計語言。
參考資料:
百度百科——素數(shù)
百度百科——C語言