0

1179908154 という間違った答えが返ってきます。最初は、合計変数が long ではなく int 型であることに責任を負いました。私は長いタイプを与えましたが、同じ答えが得られます。考え?

// Project Euler

// Problem 10

#include <iostream>
#include <cmath>
using namespace std;

void main() 
{

int p = 3;
long sum = 2;
bool isPrime;
for (p; p < 2000000; p++)
{
    isPrime = true;

    for (int i = 2; i <= sqrt(static_cast<double>(p)); i++) // cast into double for sqrt function
    {
        if (p % i == 0)
        {
            isPrime = false;
            break;

        }
    }
    if (isPrime == true)
    {
        cout << p << endl; // show each prime
        sum += p; // add prime to sum 
    }

}
cout << sum << endl; // show sum 

system("pause");

}

4

3 に答える 3