網(wǎng)上的代碼意思是:n就是你輸入的任意數(shù),判斷它是否是素數(shù)的方法是用大于2小于n的數(shù)去除n,若能整除即不是素數(shù),跳出循環(huán);若數(shù)一直增加到n+1都沒有被整除,即可輸出“素數(shù)”。
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),茅箭網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:茅箭等地區(qū)。茅箭做網(wǎng)站價格咨詢:028-86922220
你的源程序:3是素數(shù),很簡單,所以用if來提醒輸入大于3的數(shù),你的只是另一種素數(shù)算法,是優(yōu)化的算法,更快。因?yàn)橹恍栌?到根號a去判斷。
按照你的要求編寫的C語言程序如下
#includestdio.h
int f(int x) //定義判斷素數(shù)的函數(shù)
{
int n,flag=1;
if(x==1) return 0;
for(n=2;nx;n++)
if(x%n==0)
flag=0;
return flag;
}
int main()
{
int i,N,M,count=0,sum=0;
scanf("%d%d",N,M);
for(i=N;i=M;i++){
if(f(i)==1){
count++;
sum=sum+i;
}
}
printf("%d到%d之間共有%d個素數(shù),它們的和為%d",N,M,count,sum);
return 0;
}
你s=s+x;
放的位置不對,應(yīng)該這樣放:
#include
void
main()
{
int
x,n=10,i,s=0;
for(x=3;x=n;x++)
{
for(i=2;i
=x)
{
printf("%d+",x);
s=s+x;
}
}
printf("\b=%d\n",s);
}
補(bǔ)充:
在用外層的for計(jì)算下一個的時候,要把內(nèi)層for判斷出來的素數(shù)累加起來啊
否則,計(jì)算到下一個的時候,前一個就丟了啊
所以,累加的那句代碼,應(yīng)該在外層for循環(huán)的里面,內(nèi)存for循環(huán)的外面(后面)啊
您好,很高興回答您的問題。
對于您的這個問題,有兩個方面的知識點(diǎn)需要掌握,一是素數(shù)的判斷標(biāo)準(zhǔn),我們知道只能被1和數(shù)本身整除的數(shù)叫素數(shù),具體實(shí)踐時就要用到循環(huán)結(jié)構(gòu);而是函數(shù)的調(diào)用,要清楚調(diào)用函數(shù)的結(jié)構(gòu)和使用方法,才能用好調(diào)用。
以上兩個問題解決了,那么這個程序就可以實(shí)現(xiàn)功能了。還有關(guān)鍵的一點(diǎn)就是您沒有給出具體的范圍,也就是求哪個范圍內(nèi)的素數(shù)之和呢,沒有這個范圍,也就沒有辦法求出和了。
網(wǎng)站標(biāo)題:c語言中使用函數(shù)求素數(shù)和,c語言使用函數(shù)求素數(shù)和輸入兩個正整數(shù)m和n
當(dāng)前鏈接:http://jinyejixie.com/article42/hsieec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站、服務(wù)器托管、網(wǎng)站制作、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)