所有小于10的质数的和是2+3+5+7=17。
求所有小于两百万的质数的和。
这道题用之前我主页欧拉计划第七题的线性筛就很简单了欧拉计划第七题
当得到小于两百万的质数了这道题就是一个循环就可以解决了,代码实现如下:
#include <stdio.h> #define MAX_N 2000000 int prime[MAX_N + 5]; void init() { for (int i = 2; i <= MAX_N; i++) { if (!prime[i]) prime[++prime[0]] = i; for (int j = 1; i * prime[j] <= MAX_N; j++) { prime[i * prime[j]] = 1; if (i % prime[j] == 0) break; } } return ; } int main() { init(); long long sum = 0; for (int i = 1; i <= prime[0]; i++) {//prime[0]代表小于两百万质数的个数 sum += prime[i]; } printf("%lld\n", sum); return 0; }
答案为:142913828922