10以下的质数的和是2 + 3 + 5 + 7 = 17。找出两百万以下所有质数的和。麻烦各位看看有没错误,或者说可否再改进。。。
程序代码:
#include<stdio.h> #include<math.h> int main() { bool isPrime(int); long i; long n=2000000L; long sum=0L; for(i=2;i<=n;i++) { if(isPrime(i)) { sum+=i; } } printf("%ld",sum); } bool isPrime(int n) { long i; if(n==2||n==3) { return true; } if(n%2==0) { return false; } for(i=3;i<=sqrt(n)+1;i+=2){ if(n%i==0){ return false; } } return true; }