2013-05-12 54 views
-6

我必須編寫一個程序來計算有多少素數在2和「n」之間。素數(C++) - 不工作100%

第一個輸入必須是測試的總數,其他輸入必須是「n」(要檢查的數字範圍的數量限制)。

問題:

我輸入:7 10 15 50 100 1000 10000 7

右輸出上面輸入:4 6 15 25 168 1229 4

什麼我的代碼輸出:4 6 15 25 800 9800 4

我的代碼:

#include <iostream> 

using namespace std; 

int f(int number){ 
    int m=0,k=1; 
    for(k; k<=number; k++) 
     if(number%k==0) 
      m++; 
    if(m==2) 
     return true; 
} 

    int main(){ 
    int limit=0, counter=0, test=0; 
    bool n; 
    cin>>test; 
    for(int v=0; v<test; v++){ 
     cin>>limit; 
     for(int i=2; i<=limit; i++){ 
      n=f(i); 
      if (n==true) 
       counter++; 
     } 
     cout<<counter<<endl; 
     counter=0; 
    } 
    return 0; 
} 
+0

你試過調試嗎? – 2013-05-12 17:07:00

回答

2

你p可以自如地在編譯器中打開警告。函數f返回一個bool(不是聲明的int),除非x的除數等於2,否則不會這樣做。這是相當微不足道的錯誤,任何象樣的C++編譯器都應該警告你。不要忽視警告。

+0

非常感謝,現在是100%的工作。我想使用在線編譯器即時通訊錯誤(即時通訊使用SourceLair)。我將開始使用我的開發C++而不是另一個。感謝您的關注! – Student 2013-05-12 17:14:56