diff --git a/src/prime.py b/src/prime.py index d8e1d53ca210004e74f130317be4856427a69363..57ed41c879cad1ed03dbed64c6f82526916952dc 100644 --- a/src/prime.py +++ b/src/prime.py @@ -15,7 +15,7 @@ def is_prime_number(number): return False return True -def is_porbably_prime(number): +def is_probably_prime(number): """ Check wether a number is probably prime Miller Rabin Primality Test FERMAT DIT a^(p−1) = 1 mod p. @@ -32,26 +32,21 @@ def is_porbably_prime(number): return False d = ((number - 1) & -(number - 1)).bit_length() - 1 # Get the number of witness we need - print(d) r = int((number - 1) / 2**d) # Rest after factors of 2 - print(r) - for i in range(d): + for i in range(5): if ( test_rabin(number, r, d)) == False: return False return True # PASSED D WITNESSES - PROBABLY PRIME # CHECK A RANDOM NUMBER AS WITNESS -# d is the number def test_rabin(number, r, d): from math import log2 from random import randint a = randint(3, number-2) # Get random a in 3..p-2 - for i in range(0, d): - tested = a^(r*2**i) % number - + tested = a**(r*2**i) % number if tested == 1 or tested == number-1: - return true # a is not witness of Miller-Rabin + return True # a is not witness of Miller-Rabin return False # Number is not prime \ No newline at end of file