http://projecteuler.net/problem=10
#include <iostream>
#include <cstdio>
using namespace std;
const int MAXN = 2000000;
bool prime[MAXN + 10] = {1,1,0};
int main()
{
int i;
int j;
int ans = 0;
long long lans = 0;
for(i = 2; i <= MAXN; i++)
{
if(prime[i] == 0)
{
// getchar();
printf("%d ",i);
ans += i;
lans += i;
for(j = i + i; j <= MAXN; j = j + i)
{
if(prime[j] == 0)
{
prime[j] = 1;
}
}
}
}
printf("%lld\n",lans);
printf("%d\n",ans);
return 0;
}
本文提供了一个C++程序示例,用于计算2到200万之间的所有素数之和。通过标记法筛选非素数,该算法有效地实现了素数求和,并展示了如何使用基本的数据结构和控制结构来解决问题。
703

被折叠的 条评论
为什么被折叠?



