This is a work-around for issue #1 on the Github project page, that the algorithm has an error rather than factoring the number 327146098439579. While I gain the knowledge necessary to fix bug in HMPQS, I am switching the factoring method to a simpler method. After checking what effect this will have, I've found that it is significantly slower on average than the HMPQS method, even in number ranges where it should win. That isn't too surprising as almost zero effort has been put into optimizing it.
This is to work around the use of floats in some process. This mitigates the problem in that it allows us to factor numbers up to 10^300 or so instead of 10^40. This is large enough that you will probably not want to deal with numbers larger than this with this algorithm anyway. More investigation is required.
This algorithm is the record holder for numbers less than about ~100 decimal digits. It is now the default method which cl-factoring:factor uses. There are some tunable parameters, but I don't understand it enough to know how to use them, but it seems to work well as a dumb black box. This is a near verbatim copy of the code by Uli Meyer (some slight modifications to interface with normal Common Lisp style and the library).
Well not really, just a sketch of what the algorithm should be like. I haven't figured out the meaning of the slightly ambiguous pseudo-code on Wikipedia.