Version 1.0.5: Added a PRP test of each candidate surviving the sieve. Version 1.0.6: Re-ordered the PRP test to allow re-use of an intermediate value. Version 1.0.7: Compute 2^2^n as 4^2^(n-1) when PRP=1. (a little faster). Delay computing M(1) until after the PRP test. Version 1.0.8: Use bits instead of bytes for the sieve bitmap. Use alarm() to report progress every 15 seconds.