Factors of a Mersenne number: Difference between revisions

Line 880:
 
def mersenne_factor(p)
mp_nummers_num = 2.to_big_i ** p - 1
kkp2 = 1p2 = 2.to_big_i * p
while (k * 2 * pkp2 - 1) ** 2 < mp_nummers_num
q = k * 2 * pkp2 + 1
if prime?(q) && [1, 7].includes?(q % 8) && (powmod(2, p, q) == 1)
# q is a factor of 2**p-1
return q
end
kkp2 += 1p2
end
true # could also set to `0` value to check for
Anonymous user