Factors of a Mersenne number: Difference between revisions

m
Line 519:
if _\==1 & _\==7 then iterate /*must be either one or seven. */
if \isPrime(q) then iterate /*if not prime, keep on trukin'. */
if powmodmodPow(2,merc,q)==1 then return q /*Not prime? Return a factor.*/
end
return 0 /*it's a Mersenne prime, by gum. */
 
 
powmodmodPow: procedure; parse arg base,n,div
bits=x2b(d2x(n))+0 /*dec───>hex, then hex───>binary*/
sq=1
do forever until bits=''
sq=sq**2
highbit=left(bits,1)
bits=substr(bits,2)
if highbit then do