MCPcopy Create free account
hub / github.com/TheAlgorithms/Python / is_safe_prime

Function is_safe_prime

maths/germain_primes.py:41–66  ·  view source on GitHub ↗

Checks if input number and (number - 1)/2 are prime. The smallest safe prime is 5, with the Germain prime is 2. >>> is_safe_prime(5) True >>> is_safe_prime(11) True >>> is_safe_prime(1) False >>> is_safe_prime(2) False >>> is_safe_prime(3) False >>> i

(number: int)

Source from the content-addressed store, hash-verified

39
40
41def is_safe_prime(number: int) -> bool:
42 """Checks if input number and (number - 1)/2 are prime.
43 The smallest safe prime is 5, with the Germain prime is 2.
44
45 >>> is_safe_prime(5)
46 True
47 >>> is_safe_prime(11)
48 True
49 >>> is_safe_prime(1)
50 False
51 >>> is_safe_prime(2)
52 False
53 >>> is_safe_prime(3)
54 False
55 >>> is_safe_prime(47)
56 True
57 >>> is_safe_prime('abc')
58 Traceback (most recent call last):
59 ...
60 TypeError: Input value must be a positive integer. Input value: abc
61 """
62 if not isinstance(number, int) or number < 1:
63 msg = f"Input value must be a positive integer. Input value: {number}"
64 raise TypeError(msg)
65
66 return (number - 1) % 2 == 0 and is_prime(number) and is_prime((number - 1) // 2)
67
68
69if __name__ == "__main__":

Callers

nothing calls this directly

Calls 1

is_primeFunction · 0.90

Tested by

no test coverage detected