0

我试图得到一个非常大的因素(600851475143)。我正在使用 C++,并且控制台似乎已经运行了很长时间。它已达到数字 8462696833,但现在有一个闪烁的下划线。如果有帮助,我正在使用 Intel i7 处理器。需要多长时间才能完成?我对 C++ 很陌生,所以这是我的代码。

#include <iostream>
using namespace std;

int main()
{
    long long n = 600851475143, a = 0, b = 1, c = 0;
    while (c < 600851475143)
    {
        a = n % b;
        if (a == 0)
        {
            cout << b << endl;
        }
        ++b;
        ++c;
    }
    return 0;
}
4

1 回答 1

3

您应该只需要测试775,147(平方根)即可找到所有因素。如果你有一个因数,你可以通过将你的原始数除以a得到它的对应数。ba

如果您向我们展示您的代码,我们可能会提出其他优化建议。

于 2013-05-05T04:28:02.873 回答