From f6afa232caefb61d5d72e54bfeea04fa6738323e Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Sat, 17 Oct 2020 14:56:08 +0100 Subject: [PATCH 1/3] Made small improvements and shortened prime_check.py --- maths/prime_check.py | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/maths/prime_check.py b/maths/prime_check.py index ed8fbbae809a..42f5b7567049 100644 --- a/maths/prime_check.py +++ b/maths/prime_check.py @@ -4,26 +4,21 @@ import unittest -def prime_check(number: int) -> bool: - """ - Check to See if a Number is Prime. +def prime_check(number): + """Checks to see if a number is a prime. - A number is prime if it has exactly two dividers: 1 and itself. + A number is prime if it has exactly two factors: 1 and itself. """ - if number < 2: - # Negatives, 0 and 1 are not primes - return False - if number < 4: + + if 1 < number < 4: # 2 and 3 are primes return True - if number % 2 == 0: - # Even values are not primes + elif number < 2 or not number % 2: + # Negatives, 0, 1 and all even numbers are not primes return False - # Except 2, all primes are odd. If any odd value divide - # the number, then that number is not prime. - odd_numbers = range(3, int(math.sqrt(number)) + 1, 2) - return not any(number % i == 0 for i in odd_numbers) + odd_numbers = range(3, int(math.sqrt(number) + 1), 2) + return not any(not number % i for i in odd_numbers) class Test(unittest.TestCase): @@ -42,7 +37,8 @@ def test_primes(self): def test_not_primes(self): self.assertFalse(prime_check(-19), "Negative numbers are not prime.") self.assertFalse( - prime_check(0), "Zero doesn't have any divider, primes must have two." + prime_check( + 0), "Zero doesn't have any divider, primes must have two." ) self.assertFalse( prime_check(1), "One just have 1 divider, primes must have two." From 22cf39e02f76685dcbfe284203cc0c9a47d78883 Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Sat, 17 Oct 2020 15:24:03 +0100 Subject: [PATCH 2/3] improved descriptions on tests in prime_check.py --- maths/prime_check.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/maths/prime_check.py b/maths/prime_check.py index 42f5b7567049..ef987901abb3 100644 --- a/maths/prime_check.py +++ b/maths/prime_check.py @@ -35,13 +35,15 @@ def test_primes(self): self.assertTrue(prime_check(29)) def test_not_primes(self): - self.assertFalse(prime_check(-19), "Negative numbers are not prime.") + self.assertFalse( + prime_check(-19), "Negative numbers are excluded by definition of prime numbers.") self.assertFalse( prime_check( - 0), "Zero doesn't have any divider, primes must have two." + 0), "Zero doesn't have any positive factors, primes must have exactly two." ) self.assertFalse( - prime_check(1), "One just have 1 divider, primes must have two." + prime_check( + 1), "One only has 1 positive factor, primes must have exactly two." ) self.assertFalse(prime_check(2 * 2)) self.assertFalse(prime_check(2 * 3)) From ddc48ed50b4b57a38a71cd385ac9fb6ec0be70f7 Mon Sep 17 00:00:00 2001 From: Rolv Apneseth Date: Thu, 22 Oct 2020 15:36:40 +0100 Subject: [PATCH 3/3] Ran black and isort --- maths/prime_check.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/maths/prime_check.py b/maths/prime_check.py index ef987901abb3..e2bcb7b8f151 100644 --- a/maths/prime_check.py +++ b/maths/prime_check.py @@ -4,7 +4,7 @@ import unittest -def prime_check(number): +def prime_check(number: int) -> bool: """Checks to see if a number is a prime. A number is prime if it has exactly two factors: 1 and itself. @@ -36,14 +36,16 @@ def test_primes(self): def test_not_primes(self): self.assertFalse( - prime_check(-19), "Negative numbers are excluded by definition of prime numbers.") + prime_check(-19), + "Negative numbers are excluded by definition of prime numbers.", + ) self.assertFalse( - prime_check( - 0), "Zero doesn't have any positive factors, primes must have exactly two." + prime_check(0), + "Zero doesn't have any positive factors, primes must have exactly two.", ) self.assertFalse( - prime_check( - 1), "One only has 1 positive factor, primes must have exactly two." + prime_check(1), + "One only has 1 positive factor, primes must have exactly two.", ) self.assertFalse(prime_check(2 * 2)) self.assertFalse(prime_check(2 * 3))