#include stdio.h
德惠網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),德惠網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為德惠上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的德惠做網(wǎng)站的公司定做!
int fun(int x)//
{
if(x2)
return 0;//返回0,非素?cái)?shù)
for(int i=2;i*i=x;i++)
if(x%i==0)
return 0;
return 1;//返回1,素?cái)?shù)
}
int main()
{
int n;
scanf("%d",n);
if(fun(n)==1)
printf("%d是素?cái)?shù)\n",n);
else
printf("%d不是素?cái)?shù)\n",n);
return 0;
}
素?cái)?shù)又稱(chēng)質(zhì)數(shù),所謂素?cái)?shù)是指除了 1 和它本身以外,不能被任何整數(shù)整除的數(shù),例如17就是素?cái)?shù),因?yàn)樗荒鼙?2~16 的任一整數(shù)整除。
思路1、判斷一個(gè)整數(shù)m是否是素?cái)?shù),只需把 m 被 2 ~ m-1 之間的每一個(gè)整數(shù)去除,如果都不能被整除,那么 m 就是一個(gè)素?cái)?shù)。
思路2、判斷方法還可以簡(jiǎn)化。
m 不必被2~m-1之間的每一個(gè)整數(shù)去除,只需被2~√m之間的每一個(gè)整數(shù)去除就可以了。如果 m 不能被2~√m?間任一整數(shù)整除,m必定是素?cái)?shù)。例如判別17是是否為素?cái)?shù),只需使17被2~4之間的每一個(gè)整數(shù)去除,由于都不能整除,可以判定17是素?cái)?shù)。
原因:因?yàn)槿绻鹠能被2~m-1之間任一整數(shù)整除,其二個(gè)因子必定有一個(gè)小于或等于√m,另一個(gè)大于或等于√m。
例如16能被2、4、8整除,16=2*8,2小于 4,8大于4,16=4*4,4=√16,因此只需判定在2~4之間有無(wú)因子即可。
兩種思路的代碼請(qǐng)看解析。
拓展資料:
素?cái)?shù)(prime number)又稱(chēng)質(zhì)數(shù),有無(wú)限個(gè)。素?cái)?shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)。
C語(yǔ)言是一門(mén)面向過(guò)程、抽象化的通用程序設(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語(yǔ)言是僅產(chǎn)生少量的機(jī)器語(yǔ)言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語(yǔ)言。
參考資料:
百度百科——素?cái)?shù)
百度百科——C語(yǔ)言
//樓主判定"素?cái)?shù)"的算法需要改善,可參考其他網(wǎng)友的算法.
#include?stdio.h
#include?math.h
int?prime(?int?p?);
int?PrimeSum(?int?m,?int?n?);
int?main()
{
int?m,?n,?p;
scanf("%d?%d",?m,?n);
printf("Sum?of?(?");
for(?p=m;?p=n;?p++?)
{
if(?prime(p)?!=?0?)
printf("%d?",?p);?????//輸出素?cái)?shù)
}
printf(")?=?%d\n",?PrimeSum(m,?n));
return?0;
}
int?prime(?int?p?)
{
int?m=p;
while(m1)
{
m--;
//在函數(shù)prime里,如果p是素?cái)?shù),當(dāng)循環(huán)到m等于2,在執(zhí)行m--之后,m就等于1,
//再執(zhí)行if(p%m==0),必然return?0
//所以,在m--之后,增加一句if(1==m)?return?1;
if(1==m)
{
return?1;
}
if(p%m==0)
{
return?0;
}
}
return?1;
}
int?PrimeSum(?int?m,?int?n?)
{
int?result=0;
for(m;m=n;m++)
{
if(prime(m)!=0)
result=result+m;
}
return?result;
}
#include?stdio.h
#include?math.h
//判斷是否為素?cái)?shù)的函數(shù)
int?isPrime(int?n)
{
int?i=2;
while(i=(int)sqrt(n))
{
if(n%i?==?0)
return?0;??//不是素?cái)?shù),直接返回0
else
i++;
}
return?1;
}
int?main()
{
int?n,i;
printf("輸入一個(gè)正整數(shù):?");
scanf("%d",n);
for(i=2;i=n;i++)
{
if(isPrime(i))??//調(diào)用函數(shù),如果該數(shù)為素?cái)?shù),則輸出
printf("%d?",i);
}
printf("\n");
return?0;
}
示例運(yùn)行結(jié)果:
輸入一個(gè)正整數(shù): 50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
按照如下步驟即可用C語(yǔ)言判斷素?cái)?shù):
1、首先打開(kāi)visual C++ 6.0,然后點(diǎn)擊左上角的文件,再點(diǎn)擊新建。
2、然后在彈出的新建對(duì)話(huà)框中點(diǎn)擊C++Source File。
3、在新建的文件文本框中輸入預(yù)處理命令和主函數(shù),即函數(shù)頭和空類(lèi)型。
4、然后再定義變量并輸入一個(gè)數(shù)字,即定義變量的數(shù)據(jù)類(lèi)型,輸出文字提示,再輸入一個(gè)數(shù)字。
5、然后用for函數(shù)和if函數(shù)判斷是否是素?cái)?shù)。
6、點(diǎn)擊確定后即可成功創(chuàng)建剛剛新建的程序,隨機(jī)輸入一個(gè)數(shù)字即可驗(yàn)證一下剛剛創(chuàng)建的C語(yǔ)言。
分享名稱(chēng):c語(yǔ)言素?cái)?shù)和利用函數(shù) 用c語(yǔ)言編寫(xiě)素?cái)?shù)函數(shù)
當(dāng)前地址:http://m.rwnh.cn/article28/hiipcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站排名、網(wǎng)站改版、軟件開(kāi)發(fā)、動(dòng)態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)