算法提高 素數求和
時間限制:1.0s 內存限制:256.0MB
問題描述
輸入一個自然數n,求小於等於n的素數之和
樣例輸入
2
樣例輸出
2
數據規模和約定
測試樣例保證 2 <= n <= 2,000,000
作者注釋:水平有限,此題有些不知所措——n較大時結果有誤,因而后面兩個測試點總是不過。
1 #include<stdio.h> 2 #include<math.h> 3 int IsPrime(int n){ 4 int k=sqrt(n+1); 5 for(int i=2;i<=k;i++){ 6 if(n%i==0){ 7 return 0; 8 } 9 } 10 return 1; 11 } 12 int main(){ 13 int n,sum=0; 14 scanf("%d",&n); 15 for(int i=2;i<=n;i++){ 16 if(IsPrime(i)){ 17 sum+=i; 18 } 19 } 20 printf("%d",sum); 21 }