File tree Expand file tree Collapse file tree 1 file changed +11
-8
lines changed Expand file tree Collapse file tree 1 file changed +11
-8
lines changed Original file line number Diff line number Diff line change @@ -17,14 +17,17 @@ def get_random_prime(cls, bits: int) -> int:
17
17
"""
18
18
:return: Returns a random prime number.
19
19
"""
20
- # Get a random number with that amount of bits
21
- # [2 ^ (bits - 1) :to: 2 ^ bits - 1]
22
- # For example, for 3 bits:
23
- # [0b100 :to: 0b111]
24
- random_number : int = randint (2 ** (bits - 1 ), 2 ** bits - 1 )
25
- # If it is prime, return it
26
- # Otherwise, test a new random number (recursion)
27
- return random_number if cls .is_prime (random_number ) else cls .get_random_prime (bits = bits )
20
+ # Until we find a valid random prime
21
+ while True :
22
+ # Get a random number with that amount of bits
23
+ # [2 ^ (bits - 1) :to: 2 ^ bits - 1]
24
+ # For example, for 3 bits:
25
+ # [0b100 :to: 0b111]
26
+ random_number : int = randint (2 ** (bits - 1 ), 2 ** bits - 1 )
27
+ # If it is prime
28
+ if cls .is_prime (random_number ):
29
+ # Return it
30
+ return random_number
28
31
29
32
@classmethod
30
33
def is_prime (cls , number : int ) -> bool :
You can’t perform that action at this time.
0 commit comments