程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-一個跟素數有關的問題

c語言-一個跟素數有關的問題

編輯:編程綜合問答
一個跟素數有關的問題

/*我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推。
現在,給定兩個整數n和m,0<n<=m<=200,你的程序要計算第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。

輸入格式:
兩個整數,第一個表示n,第二個表示m。

輸出格式:
一個整數,表示第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。

輸入樣例:
2 4

輸出樣例:
15*/
#include
int main()
{
int m,n,sum=0;//m,n讓用戶輸入,sum即素數之和
scanf("%d%d",&n,&m);
if(n==1)//從第一個素數開始算時要把第一個素數為2的特殊情況考慮進去
sum=sum+2;
int flag=0,count=1;//flag為一個標識變量,count為素數計數器
while(count<=m)
{
int i=2;
for(i=2;;i++)
{
flag=1;
int j=2;
for(j=2;j<i;j++)
{
if(i%j==0)//判斷是否為素數
{flag=0;
break;}

            }

        }
        if(flag!=0)
            {
                if(count>=n)//當素數個數大於n時才相加
                {
                     sum=sum+i;
                count=count+1;
                }

            }
    }
    printf("%d\n",sum);

   return 0;

}

我想問一下為什麼出錯了,原因是什麼?

最佳回答:


你的程序根本不對,if(flag!=0)應該在i每次循環的時候都判斷
否則陷入死循環。
建議你調整代碼的縮進,你的代碼沒有正確的縮進是造成你程序寫不正確的主要原因。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved