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

素數求和-用c++實現求素數的和時遇到一個問題

編輯:編程綜合問答
用c++實現求素數的和時遇到一個問題

描述
現在給你N個數(0<N<1000),現在要求你寫出一個程序,找出這N個數中的所有素數,並求和。
輸入
第一行給出整數M(0<M<10)代表多少組測試數據
每組測試數據第一行給你N,代表該組測試數據的數量。
接下來的N個數為要測試的數據,每個數小於1000
輸出
每組測試數據結果占一行,輸出給出的測試數據的所有素數和

代碼:
#include
using namespace std;
int main()
{
int M;
int flag=1;
cin>>M;
while(M--){
int N,i;
int sum=0;
cin>>N;
while(N--){
cin>>i;
for(unsigned cnt=2;cnt<i/2+1;cnt++){
if(i%cnt==0){
flag=0;
break;
}

}

               if(!flag==0){
               sum+=i;
               flag=1;
               }

  }           
  cout<<sum<<endl;

}

system("Pause");
return 0;
}

N代表有多少組測試數據;M代表每組有多少個數據;i代表具體數據
接下來是我遇到的問題:
當我輸入的都是素數時能正確求出素數和,但是如果中間有一個合數,那麼這個合數後面的素數就沒有算進去了,不知道為什麼。
麻煩大家幫我找一下原因。

最佳回答:


每次for循環前,flag都要初始化成1,否則上次的判斷會影響到下次

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