I think it is correct as it is; to test ``fc % q`` one must make sure that ``q != 0``. If ``q == 0`` then
the product of the constant factors is a multiple of ``pl``, so it cannot divide ``fc``. So the case ``q==0 b == 1``
can be skipped. The case ``q==0 b != 1`` could be skipped, but apparently it is rare, so I did not put
a test for it.