c++ - Project Euler : Summation of primes. .. 为什么这行不通?

标签 c++ project solution

我一直得到 1179908154 的错误答案。起初我将其归咎于我的求和变量是 int 类型,而不是 long 类型。我给了它长类型,但我得到了相同的答案。想法?

// 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");

最佳答案

也许在您的平台上,多头也不足以保持值(value)。尝试使用 long long。

关于c++ - Project Euler : Summation of primes. .. 为什么这行不通?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258359/

相关文章:

c++,eclipse,字段无法解析

c++ - 无与伦比的井字游戏

msbuild - 构建成功,但找不到二进制文件。为什么?

visual-studio - 安装 2 个版本的 VS 后,在 VS 中打开 WebMatrix 解决方案失败

git - 让 NuGet 与整个解决方案和其中包含的单个项目一起工作

c++ - 输出数组某索引的部分字符串

c++ - 前增量和后增量

variables - Emacs 中的动态项目范围变量

python - 公共(public) python 程序作为包含所有模块的一个文件

asp.net-mvc - 是否有针对 ASP.NET MVC 生产应用程序的建议解决方案结构