-3

プロジェクト オイラーの問題を解決しようとしています。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 です。このコードが間違った答えを出している理由を教えてください。

4

1 に答える 1