Solve problem 111 and fix bug in lib prime.

This commit is contained in:
2023-10-01 20:19:41 +02:00
parent bf3732794a
commit fd4ff495d9
2 changed files with 52 additions and 1 deletions

View File

@@ -68,6 +68,11 @@ def is_prime(n):
def is_prime_rabin_miller(number):
""" Rabin-Miller Primality Test """
witnesses = [2, 3, 5, 7, 11, 13, 17, 23, 29, 31, 37, 41, 43, 47, 53]
if number in witnesses:
return True
if number % 6 not in [1,5]:
return False
@@ -76,7 +81,7 @@ def is_prime_rabin_miller(number):
s //= 2
r += 1
for witness in [2, 3, 5, 7, 11, 13, 17, 23, 29, 31, 37, 41, 43, 47, 53]:
for witness in witnesses:
remainder = pow(witness, s, number)
if remainder == 1:
continue