C语言 · 素数求和


算法提高 素数求和  
时间限制: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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM