tsukikage wrote:
Please see source in attachment.
The output is
M2 M3 M5 M7 M13 M17 M19 M31 M61 M89 M107 M127 M521 M607 M1279 M2203
M2281 M3217 M4253 M4423
*** M9689***
M9941 M11213 M19937
*** M21701***
M23209
It missed 2 Mersenne Primes 9689 & 21701.
Is it my program bug or bigint broken?
It seems subtle.
Thank you!
That's quite a terrible bug in Bigint. It's slipped through testing
because of a fault in the win32 Phobos makefile (someone disabled
asserts!). If Phobos is compiled in debug mode, your code causes an
assert failure inside the bigint code.
It's a straightforward problem with the fast recursive division
implementation, failing to properly normalize intermediate quotients.
Unfortunately the fix won't make the next release, which happens in a
few hours.