我试图得到一个非常大的因素(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;
}
答案 0 :(得分:3)
您应该只需要测试775,147
(平方根)来查找所有因素。如果您使用a
因子,则可以将原始数字除以b
来获得对应的a
。
如果您向我们展示您的代码,我们可能会建议其他优化。