按照如下步驟即可用C語言判斷素?cái)?shù):
創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為龍馬潭等服務(wù)建站,龍馬潭等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為龍馬潭企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
1、首先打開visual C++ 6.0,然后點(diǎn)擊左上角的文件,再點(diǎn)擊新建。
2、然后在彈出的新建對(duì)話框中點(diǎn)擊C++Source File。
3、在新建的文件文本框中輸入預(yù)處理命令和主函數(shù),即函數(shù)頭和空類型。
4、然后再定義變量并輸入一個(gè)數(shù)字,即定義變量的數(shù)據(jù)類型,輸出文字提示,再輸入一個(gè)數(shù)字。
5、然后用for函數(shù)和if函數(shù)判斷是否是素?cái)?shù)。
6、點(diǎn)擊確定后即可成功創(chuàng)建剛剛新建的程序,隨機(jī)輸入一個(gè)數(shù)字即可驗(yàn)證一下剛剛創(chuàng)建的C語言。
#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
有三種方法:
1、輸出1-100以內(nèi)的素?cái)?shù):
2、同樣,也是輸出1-100以內(nèi)的素?cái)?shù),這個(gè)構(gòu)造一個(gè)數(shù)組,將其所有元素初始化為1,表示素?cái)?shù),這時(shí)取x從2開始,到100以內(nèi)做循環(huán)。
若x為素?cái)?shù),即prime[x]!=0,使得每個(gè)i*x位置元素置0(prime[i*x]=0),表示為非素?cái)?shù),循環(huán)結(jié)束前x+1。
3、該方法是輸出100個(gè)素?cái)?shù),基本思想是構(gòu)造一個(gè)素?cái)?shù)表,利用函數(shù)判斷每個(gè)數(shù)是否能被其之前的素?cái)?shù)整除,如果不能,則在素?cái)?shù)表內(nèi)加上該元素,不斷循環(huán)(while循環(huán)結(jié)束條件是cnt即數(shù)組個(gè)數(shù)100)。
擴(kuò)展資料:
在這個(gè)小程序中主要用到的是for循環(huán)
for 循環(huán)語句的一般形式為:
for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3)
{
語句;
}
需要注意的兩點(diǎn):
1) 表達(dá)式1、表達(dá)式2和表達(dá)式3之間是用分號(hào);隔開的,千萬不要寫成逗號(hào)。
2)?for(表達(dá)式1;表達(dá)式2;表達(dá)式3)的后面千萬不要加分號(hào),很多新手都會(huì)犯這種錯(cuò)誤——會(huì)情不自禁地在后面加分號(hào)。
因?yàn)?for 循環(huán)只能控制到其后的一條語句,而在C語言中分號(hào)也是一個(gè)語句——空語句。所以如果在后面加個(gè)分號(hào),那么 for 循環(huán)就只能控制到這個(gè)分號(hào),下面大括號(hào)里面的語句就不屬于 for 循環(huán)了。
素?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之間有無因子即可。
兩種思路的代碼請(qǐng)看解析。
拓展資料:
素?cái)?shù)(prime number)又稱質(zhì)數(shù),有無限個(gè)。素?cái)?shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)。
C語言是一門面向過程、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語言。
參考資料:
百度百科——素?cái)?shù)
百度百科——C語言