1

显然在下面的代码中有一个我无法弄清楚的错误。该代码旨在解决项目 euler 429,并且似乎可以很好地处理小数字(我制作了一个更简单的代码,直到 x=10 才能验证这一点)。我必须说我花了最后一个小时试图弄清楚(徒劳),因为我没有解决知识的错误而相信代码不起作用 - 这就是我在这里的原因。

我对你的要求是:你能告诉我为什么这个代码不适用于大数字,即使它适用于较小的数字?(我相信没有必要为了找到错误而理解我的代码)

4

1 回答 1

3

这是一个简单的误读:

S(100 000 000!)1 000 000 009

对比

int x=1000000000;

数零。

该算法还不错,尽管可以通过以下方式改进

  • 使用筛子找到素数,
  • 避免BigInteger,long就足够了(如果做得对的话)。
于 2013-05-31T19:52:51.443 回答