5
5
6
6
7
7
def prime_check (number : int ) -> bool :
8
- """
9
- Check to See if a Number is Prime.
8
+ """Checks to see if a number is a prime.
10
9
11
- A number is prime if it has exactly two dividers : 1 and itself.
10
+ A number is prime if it has exactly two factors : 1 and itself.
12
11
"""
13
- if number < 2 :
14
- # Negatives, 0 and 1 are not primes
15
- return False
16
- if number < 4 :
12
+
13
+ if 1 < number < 4 :
17
14
# 2 and 3 are primes
18
15
return True
19
- if number % 2 == 0 :
20
- # Even values are not primes
16
+ elif number < 2 or not number % 2 :
17
+ # Negatives, 0, 1 and all even numbers are not primes
21
18
return False
22
19
23
- # Except 2, all primes are odd. If any odd value divide
24
- # the number, then that number is not prime.
25
- odd_numbers = range (3 , int (math .sqrt (number )) + 1 , 2 )
26
- return not any (number % i == 0 for i in odd_numbers )
20
+ odd_numbers = range (3 , int (math .sqrt (number ) + 1 ), 2 )
21
+ return not any (not number % i for i in odd_numbers )
27
22
28
23
29
24
class Test (unittest .TestCase ):
@@ -40,12 +35,17 @@ def test_primes(self):
40
35
self .assertTrue (prime_check (29 ))
41
36
42
37
def test_not_primes (self ):
43
- self .assertFalse (prime_check (- 19 ), "Negative numbers are not prime." )
44
38
self .assertFalse (
45
- prime_check (0 ), "Zero doesn't have any divider, primes must have two."
39
+ prime_check (- 19 ),
40
+ "Negative numbers are excluded by definition of prime numbers." ,
41
+ )
42
+ self .assertFalse (
43
+ prime_check (0 ),
44
+ "Zero doesn't have any positive factors, primes must have exactly two." ,
46
45
)
47
46
self .assertFalse (
48
- prime_check (1 ), "One just have 1 divider, primes must have two."
47
+ prime_check (1 ),
48
+ "One only has 1 positive factor, primes must have exactly two." ,
49
49
)
50
50
self .assertFalse (prime_check (2 * 2 ))
51
51
self .assertFalse (prime_check (2 * 3 ))
0 commit comments