Wolfram Alpha如何在不到一秒的时间内计算出2305843008139952128的除数?

Dra*_*gno 0 wolframalpha

我试图找到一个巨大整数的除数我在Haskell中提出了一个问题,但Haskell还不够快.我把上面的数字放在Wolfram Alpha中,结果是立竿见影的.怎么做的?

twa*_*erg 5

这实际上并不是一个困难的因子分解,因为它是2 ^ 30*(2 ^ 31 - 1).重复除以2,直到数字为奇数,然后循环的大约20k次迭代试图将2147483647除以大于2但小于sqrt(2147483647)= 46340的奇数.在现代处理器上,这不会花很长时间......