2014-02-18 49 views
-2

我寫了歐拉項目問題10.下面的代碼雖然我得到素數的正確的數字(在類似的問題給出的代碼檢查),但總和輸出來不正確 代碼project euler#10。得到錯誤的答案

#include<stdio.h> 
#include<stdbool.h> 
#define upper 2000000 
int main(void) 
{ 
    bool prime[upper]; 
    long long sum=0, i,k; 
    for(i=0;i<upper;i++) 
    { 
     prime[i]=true; 
    } 
    for(i=2;i<upper;i++) 
    { 
     if(prime[i]) 
     { 

      for(k=2;i*k<upper;k++) 
      { 
       prime[k*i]=false; 
      } 
     } 
    } 
    long count=0; 
    for(i=2;i<upper;i++) 
    { 
     if(prime[i]) 
     { 
      count++; 
      sum +=i; 
     } 
    } 
    printf("%d %d",count,sum); 
    return 0; 
} 
+1

該項目的目標是讓你從自己的解決問題的學習;-) –

+1

它還將幫助,如果你發佈的輸出你和你所期望的一個。 – CompuChip

+0

你已經講了一個故事。你忘了問一個問題。你有什麼問題? –

回答

3
printf("%d %d",count,sum); 

是你的問題。總和得到正確計算,但您使用錯誤的格式字符串。檢查printf格式,特別是你需要輸出一長串。

+0

是啊..恩,這有幫助 –