c語言中沒有求素?cái)?shù)的程序,你的自己編一個(gè),判斷形參a是否為素?cái)?shù),若是素?cái)?shù),函數(shù)返回1,否則返回0。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比商城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式商城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋商城地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
int
isprime(int
a)
{
for
(int
i=2;i=a/2;i++)
{
if
(a%i==0)
return
0;
}
return
1;
}
isprime是一種函數(shù),功能是判斷素?cái)?shù)。
#實(shí)現(xiàn)isPrime()函數(shù),參數(shù)為整數(shù),要有異常處理。如果整數(shù)是質(zhì)數(shù),返回True,否則返回False。
#函數(shù)分為定義、調(diào)用、執(zhí)行、返回四部分,循環(huán)讀取輸入,注意縮進(jìn)。
擴(kuò)展資料:
一個(gè)數(shù)若可以進(jìn)行因數(shù)分解,那么分解時(shí)得到的兩個(gè)數(shù)一定是一個(gè)小于等于sqrt(n),一個(gè)大于等于sqrt(n),所以對(duì)于每個(gè)數(shù)n,并不需要從2判斷到n-1,遍歷到sqrt(n)即可。因?yàn)槿魋qrt(n)左側(cè)找不到約數(shù),那么右側(cè)也一定找不到約數(shù)。
可以使用篩選法,先生成小于n的所有數(shù)字,再把 2 到 sqrt(n) 之間的整數(shù)的倍數(shù)依次去掉,剩余的就是小于n的所有素?cái)?shù)了。
參考資料來源:
百度百科-isprime
c語言判斷素?cái)?shù)的函數(shù)程序:
經(jīng)分析,以上代碼使用flag的值來判斷輸入的n是否為素?cái)?shù),flag=1,n為素?cái)?shù);flag=0,n不是素?cái)?shù)。完善if條件語句,第一個(gè)if,主函數(shù)中的if調(diào)用函數(shù),需要填入一個(gè)參數(shù),即prime(n);第二個(gè)if,是判斷什么情況下flag=0,即輸入的整數(shù)不為素?cái)?shù),即(n/i==0),余數(shù)為0,可以整除;最后返回flag的值,returnflag
但是經(jīng)過運(yùn)行可以知道,n=4的時(shí)候,程序判斷4是素?cái)?shù),明顯是錯(cuò)誤的,n取0和1的時(shí)候同理,程序存在漏洞。分析得知,在定義函數(shù)的過程中,for循環(huán)條件語句,i=0,如果為負(fù)整數(shù),另加判斷條件,略)