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

Function is_prime

maths/prime_check.py:9–57  ·  view source on GitHub ↗

Checks to see if a number is a prime in O(sqrt(n)). A number is prime if it has exactly two factors: 1 and itself. >>> is_prime(0) False >>> is_prime(1) False >>> is_prime(2) True >>> is_prime(3) True >>> is_prime(27) False >>> is_prime(87) False

(number: int)

Source from the content-addressed store, hash-verified

7
8
9def is_prime(number: int) -> bool:
10 """Checks to see if a number is a prime in O(sqrt(n)).
11
12 A number is prime if it has exactly two factors: 1 and itself.
13
14 >>> is_prime(0)
15 False
16 >>> is_prime(1)
17 False
18 >>> is_prime(2)
19 True
20 >>> is_prime(3)
21 True
22 >>> is_prime(27)
23 False
24 >>> is_prime(87)
25 False
26 >>> is_prime(563)
27 True
28 >>> is_prime(2999)
29 True
30 >>> is_prime(67483)
31 False
32 >>> is_prime(16.1)
33 Traceback (most recent call last):
34 ...
35 ValueError: is_prime() only accepts positive integers
36 >>> is_prime(-4)
37 Traceback (most recent call last):
38 ...
39 ValueError: is_prime() only accepts positive integers
40 """
41
42 # precondition
43 if not isinstance(number, int) or not number >= 0:
44 raise ValueError("is_prime() only accepts positive integers")
45
46 if 1 < number < 4:
47 # 2 and 3 are primes
48 return True
49 elif number < 2 or number % 2 == 0 or number % 3 == 0:
50 # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
51 return False
52
53 # All primes number are in format of 6k +/- 1
54 for i in range(5, int(math.sqrt(number) + 1), 6):
55 if number % i == 0 or number % (i + 2) == 0:
56 return False
57 return True
58
59
60class Test(unittest.TestCase):

Callers 5

is_germain_primeFunction · 0.90
is_safe_primeFunction · 0.90
twin_primeFunction · 0.90
test_primesMethod · 0.70
test_not_primesMethod · 0.70

Calls

no outgoing calls

Tested by 2

test_primesMethod · 0.56
test_not_primesMethod · 0.56