目的:判斷一個(gè)數(shù)是否為素?cái)?shù)
十載的鄭州網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鄭州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“鄭州網(wǎng)站設(shè)計(jì)”,“鄭州網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
#?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)的功能:
①若能整除,通過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、存在任意長度的素?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ù)。后來,有人簡稱這結(jié)果為?(1?+?5)(中國潘承洞,1968年)。
6、一個(gè)充分大偶數(shù)必定可以寫成一個(gè)素?cái)?shù)加上一個(gè)最多由2個(gè)質(zhì)因子所組成的合成數(shù)。簡稱為?(1?+?2)。
參考資料來源:百度百科-質(zhì)數(shù)
工具/材料
ubuntu,vim,gcc
01
打開ubuntu并開啟一個(gè)終端,輸入命令vim is_prime.c,打開編輯頁面,輸入預(yù)處理指令#includestdio.h用于在主函數(shù)中調(diào)用判斷函數(shù)。然后定義一個(gè)函數(shù)int is_prime(int n),即判斷整數(shù)n是否為素?cái)?shù)。
02
首先,判斷這個(gè)數(shù)是否小于2.若是,則直接返回0,即表示它不是一個(gè)素?cái)?shù)。
03
然后定義中間的因數(shù)i,初始值為2。依次使n對i取余數(shù),看n能否整除i,然后令i自增直到i的平方大于n。在這過程中,如果遇到n能整除i,則說明n不是一個(gè)素?cái)?shù)。如果循環(huán)能夠直到i的平方大于n才結(jié)束,說明n是一個(gè)素?cái)?shù)。
04
接下來,我們使用主函數(shù)進(jìn)行測試,使用printf("%d : %d\n", n, is_prime(n))的格式進(jìn)行輸出。如果輸出結(jié)果為0,說明不為素?cái)?shù);結(jié)果為1,說明是一個(gè)素?cái)?shù)。
測試的數(shù)據(jù)依次是2,4,9,15, 17, 23, 25。
05
退出編輯器vim,然后使用gcc編譯并運(yùn)行它,得到結(jié)果。通過結(jié)果我們可以看出,預(yù)期的結(jié)果與我們對于素?cái)?shù)的認(rèn)知是相同的,說明我們的程序編寫沒有錯(cuò)誤。以下是所有的源代碼:
#include stdio.h
//判斷一個(gè)數(shù)是否為素?cái)?shù)的函數(shù)定義
int is_prime(int n)
{
//判斷n是否小于2.若小于則直接返回0
//表示n不是一個(gè)素?cái)?shù)
if(n 2)
return 0;
//定義一個(gè)中間變量i,初始化i=2
int i = 2;
//依次判斷每一個(gè)不大于根號n的i是否能被n整除
for(i = 2; i * i = n;i++)
{
//如果能夠整除
if(n % i == 0)
//直接返回0,表示n不是一個(gè)素?cái)?shù)
return 0;
}
//如果程序運(yùn)行到這里,說明i*i大于n
//說明n是一個(gè)素?cái)?shù)
return 1;
}
int main()
{
printf("%d : %d\n", 2, is_prime(2));
printf("%d : %d\n", 4, is_prime(4));
printf("%d : %d\n", 9, is_prime(9));
printf("%d : %d\n", 15, is_prime(15));
printf("%d : %d\n", 17, is_prime(17));
printf("%d : %d\n", 23, is_prime(23));
printf("%d : %d\n", 25, is_prime(25));
return 0;
}
基本思想:把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語言文件,引入頭文件,主函數(shù)中暫時(shí)沒有內(nèi)容:
2、這里開始編寫代碼,這里判斷素?cái)?shù)需要用到平方根,所以要在頭文件中引入math庫,然后編寫判斷素?cái)?shù)的函數(shù),函數(shù)有唯一的參數(shù)n,代表素?cái)?shù)。判斷的依據(jù)是素?cái)?shù)n只要不能被 2 到根號下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語言判斷素?cái)?shù)的流程:
1、首先打開CodeBlocks,創(chuàng)建一個(gè)新項(xiàng)目。
2、項(xiàng)目語言,選擇“c”, 我們將項(xiàng)目名稱命名為“primeNumber”。
3、然后下一步點(diǎn)擊“finish”。
4、創(chuàng)建好項(xiàng)目后,我們打開 “main.c”文件。
5、素?cái)?shù)即質(zhì)數(shù),也就是除了1和它本身以外不再有其他因數(shù),首先是實(shí)現(xiàn)輸入口。
6、輸入口完成后,接下來就是判斷素?cái)?shù)。 要判斷素?cái)?shù),我們要從它的特點(diǎn)開始找。素?cái)?shù)的因子 只有1和它本身。那么,就是說,我們可以通過找到這個(gè)數(shù)的所有因數(shù),進(jìn)行比對即可。
7、先定義好相關(guān)的變量,這里result是用來存儲因子之和的,用循環(huán),遍歷所有可能因子。
其中 if判斷,i是不是prime的因數(shù)。 %是求余數(shù)的運(yùn)算符。當(dāng)能被整除時(shí),結(jié)果為0。
8、執(zhí)行完for循環(huán)后,result中存入的就是 prime的因數(shù)之和,其中也包括它本身。接下來只要判斷 prime+1 是否與result相等。如果相等,就表示result中是1+數(shù)本身,即為素?cái)?shù)。
當(dāng)前名稱:c語言素?cái)?shù)判斷程序函數(shù) c語言程序設(shè)計(jì)函數(shù)判斷素?cái)?shù)
URL鏈接:http://jinyejixie.com/article24/dosddje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、小程序開發(fā)、建站公司、網(wǎng)站設(shè)計(jì)、全網(wǎng)營銷推廣、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)