我正在尝试解决 Project Euler 问题,它希望我找到低于 200 万的素数之和。这是我写的代码:
#include <iostream>
using namespace std;
bool isPrime (int x)
{
for(int i = 2; i < x; i++)
{
if(x % i == 0)
return false;
}
return true;
}
int main ()
{
int x = 0;
for(int i = 3 ; i < 2000000;i++)
{
if(isPrime(i))
x = x + i;
}
cout<<x+2<<endl;
}
我知道这不是解决这个问题的有效方法。我找到了一种更简单的方法,但我认为这个解决方案也应该给出正确的答案。这段代码找到的答案是:1179908154。你能告诉我为什么这段代码给出了错误的答案吗?