处理12位数的因素需要多长时间?

时间:2013-05-05 04:25:38

标签: c++

我试图得到一个非常大的因素(600851475143)。我正在使用C ++,控制台似乎一直在使用。它已达到数字8462696833,但现在有一个闪烁的下划线。如果有帮助,我正在使用英特尔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;
}

1 个答案:

答案 0 :(得分:3)

您应该只需要测试775,147(平方根)来查找所有因素。如果您使用a因子,则可以将原始数字除以b来获得对应的a

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