#include stdio.h
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)多倫免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
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ù)又稱質(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)又稱質(zhì)數(shù),有無(wú)限個(gè)。素?cái)?shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)。
C語(yǔ)言是一門面向過(guò)程、抽象化的通用程序設(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于底層開發(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ǔ)言
目的:判斷一個(gè)數(shù)是否為素?cái)?shù)
#?include?stdio.h
int?main(void)
{
int m;
int?i;
scanf("%d",m);
for(i?=?2;?i? m;?i++) ? ? //2到(m-1)的數(shù)去除m
{
if(m%?i?==?0)???????//?判斷能否整除
break;
}
if?(i?== m)
printf("YES!\n");
else
printf("No!\n");
}
for循環(huán)的功能:
①若能整除,通過(guò)break跳出函數(shù);
②若一直到m-1都不能整除,此時(shí)i再自增1到m,不滿足i? m跳出for循環(huán),這時(shí)i?= m。
擴(kuò)展資料:
素?cái)?shù)定理:
1、在一個(gè)大于1的數(shù)a和它的2倍之間(即區(qū)間(a,?2a]中)必存在至少一個(gè)素?cái)?shù)。
2、存在任意長(zhǎng)度的素?cái)?shù)等差數(shù)列。
3、一個(gè)偶數(shù)可以寫成兩個(gè)合數(shù)之和,其中每一個(gè)合數(shù)都最多只有9個(gè)質(zhì)因數(shù)。(挪威數(shù)學(xué)家布朗,1920年)。
4、一個(gè)偶數(shù)必定可以寫成一個(gè)質(zhì)數(shù)加上一個(gè)合成數(shù),其中合數(shù)的因子個(gè)數(shù)有上界。(瑞尼,1948年)。
5、一個(gè)偶數(shù)必定可以寫成一個(gè)質(zhì)數(shù)加上一個(gè)最多由5個(gè)因子所組成的合成數(shù)。后來(lái),有人簡(jiǎn)稱這結(jié)果為?(1?+?5)(中國(guó)潘承洞,1968年)。
6、一個(gè)充分大偶數(shù)必定可以寫成一個(gè)素?cái)?shù)加上一個(gè)最多由2個(gè)質(zhì)因子所組成的合成數(shù)。簡(jiǎn)稱為?(1?+?2)。
參考資料來(lái)源:百度百科-質(zhì)數(shù)
基本思想:把m作為被除數(shù),將2—INT()作為除數(shù),如果都除不盡,m就是素?cái)?shù),否則就不是。
可用以下程序段實(shí)現(xiàn):
voidmain()
{intm,i,k;
printf("pleaseinputanumber:\n");
scanf("%d",m);
k=sqrt(m);
for(i=2;ik;i++)
if(m%i==0)break;
if(i=k)
printf("該數(shù)是素?cái)?shù)");
else
printf("該數(shù)不是素?cái)?shù)");
}
將其寫成一函數(shù),若為素?cái)?shù)返回1,不是則返回0
intprime(m%)
{inti,k;
k=sqrt(m);
for(i=2;ik;i++)
if(m%i==0)return0;
return1;
}
擴(kuò)展資料:
100-200之間的素?cái)?shù)的個(gè)數(shù),以及所有的素?cái)?shù)
#includestdio.h
#includemath.h
intmain()
{
inta,m,k,i;
a=0;
for(i=101;i=200;i++)
{
for(k=2;ki;k++)
if(i%k==0)break;
if(k=i)
a++;
}
printf("%d\n",a);
for(i=101;i=200;i++)
{
for(k=2;ki;k++)
if(i%k==0)break;
if(k=i)
a++;
if(k=i)
printf("%d",i);
}
printf("\n");
return0;
}
1、首先需要打開vs軟件工程,準(zhǔn)備好一個(gè)空白的C語(yǔ)言文件,引入頭文件,主函數(shù)中暫時(shí)沒(méi)有內(nèi)容:
2、這里開始編寫代碼,這里判斷素?cái)?shù)需要用到平方根,所以要在頭文件中引入math庫(kù),然后編寫判斷素?cái)?shù)的函數(shù),函數(shù)有唯一的參數(shù)n,代表素?cái)?shù)。判斷的依據(jù)是素?cái)?shù)n只要不能被 2 到根號(hào)下n之 間任一整數(shù)整除,則n必定是素?cái)?shù),最后在主函數(shù)中調(diào)用判斷素?cái)?shù)的函數(shù)即可:
3、最后,編譯運(yùn)行程序,在彈出的命令行中輸入17這個(gè)素?cái)?shù),程序的打印結(jié)果是17是素?cái)?shù),證明了程序的正確性。以上就是用C語(yǔ)言判斷素?cái)?shù)的流程:
網(wǎng)頁(yè)題目:函數(shù)素?cái)?shù)判斷c語(yǔ)言 c語(yǔ)言用函數(shù)判斷素?cái)?shù)代碼
網(wǎng)頁(yè)路徑:http://m.newbst.com/article18/hjhcgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、電子商務(wù)、移動(dòng)網(wǎng)站建設(shè)、域名注冊(cè)、定制開發(fā)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)