From 1fbf13254b9fcfba0e8a62ac9c6a8138a4d1d4d9 Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 19 Jul 2022 19:58:22 -0400 Subject: [PATCH 1/6] fixes #5434 --- project_euler/problem_003/sol1.py | 35 ++++++++++++------- project_euler/problem_007/sol1.py | 41 +++++++++++++++------- project_euler/problem_007/sol2.py | 38 ++++++++++++++++---- project_euler/problem_007/sol3.py | 38 ++++++++++++++++---- project_euler/problem_010/sol1.py | 36 +++++++++++++++---- project_euler/problem_010/sol2.py | 32 ++++++++++++++--- project_euler/problem_027/sol1.py | 48 ++++++++++++++++++------- project_euler/problem_037/sol1.py | 56 +++++++++++++++++++++-------- project_euler/problem_041/sol1.py | 45 ++++++++++++++++++------ project_euler/problem_046/sol1.py | 54 ++++++++++++++++++++-------- project_euler/problem_049/sol1.py | 43 ++++++++++++++++------- project_euler/problem_058/sol1.py | 58 +++++++++++++++++++++---------- 12 files changed, 394 insertions(+), 130 deletions(-) diff --git a/project_euler/problem_003/sol1.py b/project_euler/problem_003/sol1.py index 606a6945e4ad..7e60dd721a1a 100644 --- a/project_euler/problem_003/sol1.py +++ b/project_euler/problem_003/sol1.py @@ -13,9 +13,11 @@ import math -def is_prime(num: int) -> bool: - """ - Returns boolean representing primality of given number num. +def is_prime(number: int) -> bool: + """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. + Returns boolean representing primality of given number num (i.e., if the + result is true, then the number is indeed prime else it is not). >>> is_prime(2) True @@ -26,23 +28,30 @@ def is_prime(num: int) -> bool: >>> is_prime(2999) True >>> is_prime(0) - Traceback (most recent call last): - ... - ValueError: Parameter num must be greater than or equal to two. + False >>> is_prime(1) + False + >>> is_prime(3.14) Traceback (most recent call last): ... - ValueError: Parameter num must be greater than or equal to two. + AssertionError: 'number' must been an int and positive """ - if num <= 1: - raise ValueError("Parameter num must be greater than or equal to two.") - if num == 2: + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes return True - elif num % 2 == 0: + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes return False - for i in range(3, int(math.sqrt(num)) + 1, 2): - if num % i == 0: + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: return False return True diff --git a/project_euler/problem_007/sol1.py b/project_euler/problem_007/sol1.py index 78fbcb511611..2a1a723a8b0f 100644 --- a/project_euler/problem_007/sol1.py +++ b/project_euler/problem_007/sol1.py @@ -15,29 +15,46 @@ from math import sqrt -def is_prime(num: int) -> bool: - """ - Determines whether the given number is prime or not +def is_prime(number: int) -> bool: + """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. + Returns boolean representing primality of given number num (i.e., if the + result is true, then the number is indeed prime else it is not). >>> is_prime(2) True - >>> is_prime(15) + >>> is_prime(3) + True + >>> is_prime(27) False - >>> is_prime(29) + >>> is_prime(2999) True >>> is_prime(0) False + >>> is_prime(1) + False + >>> is_prime(3.14) + Traceback (most recent call last): + ... + AssertionError: 'number' must been an int and positive """ - if num == 2: + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes return True - elif num % 2 == 0: + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes return False - else: - sq = int(sqrt(num)) + 1 - for i in range(3, sq, 2): - if num % i == 0: - return False + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False return True diff --git a/project_euler/problem_007/sol2.py b/project_euler/problem_007/sol2.py index 44d72e9493e8..cc2807b7d2fc 100644 --- a/project_euler/problem_007/sol2.py +++ b/project_euler/problem_007/sol2.py @@ -11,22 +11,48 @@ References: - https://en.wikipedia.org/wiki/Prime_number """ +import math def is_prime(number: int) -> bool: - """ - Determines whether the given number is prime or not + """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. + Returns boolean representing primality of given number num (i.e., if the + result is true, then the number is indeed prime else it is not). >>> is_prime(2) True - >>> is_prime(15) + >>> is_prime(3) + True + >>> is_prime(27) False - >>> is_prime(29) + >>> is_prime(2999) True + >>> is_prime(0) + False + >>> is_prime(1) + False + >>> is_prime(3.14) + Traceback (most recent call last): + ... + AssertionError: 'number' must been an int and positive """ - for i in range(2, int(number**0.5) + 1): - if number % i == 0: + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes + return False + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: return False return True diff --git a/project_euler/problem_007/sol3.py b/project_euler/problem_007/sol3.py index daa719cefbda..c90d5906398f 100644 --- a/project_euler/problem_007/sol3.py +++ b/project_euler/problem_007/sol3.py @@ -16,20 +16,46 @@ def is_prime(number: int) -> bool: - """ - Determines whether a given number is prime or not + """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. + Returns boolean representing primality of given number num (i.e., if the + result is true, then the number is indeed prime else it is not). >>> is_prime(2) True - >>> is_prime(15) + >>> is_prime(3) + True + >>> is_prime(27) False - >>> is_prime(29) + >>> is_prime(2999) True + >>> is_prime(0) + False + >>> is_prime(1) + False + >>> is_prime(3.14) + Traceback (most recent call last): + ... + AssertionError: 'number' must been an int and positive """ - if number % 2 == 0 and number > 2: + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes return False - return all(number % i for i in range(3, int(math.sqrt(number)) + 1, 2)) + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False + return True def prime_generator(): diff --git a/project_euler/problem_010/sol1.py b/project_euler/problem_010/sol1.py index e060761eecab..0ba570eb8824 100644 --- a/project_euler/problem_010/sol1.py +++ b/project_euler/problem_010/sol1.py @@ -11,12 +11,14 @@ - https://en.wikipedia.org/wiki/Prime_number """ -from math import sqrt +import math -def is_prime(n: int) -> bool: - """ - Returns boolean representing primality of given number num. +def is_prime(number: int) -> bool: + """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. + Returns boolean representing primality of given number num (i.e., if the + result is true, then the number is indeed prime else it is not). >>> is_prime(2) True @@ -26,13 +28,33 @@ def is_prime(n: int) -> bool: False >>> is_prime(2999) True + >>> is_prime(0) + False + >>> is_prime(1) + False + >>> is_prime(3.14) + Traceback (most recent call last): + ... + AssertionError: 'number' must been an int and positive """ - if 1 < n < 4: + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes return True - elif n < 2 or not n % 2: + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes return False - return not any(not n % i for i in range(3, int(sqrt(n) + 1), 2)) + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False + return True def solution(n: int = 2000000) -> int: diff --git a/project_euler/problem_010/sol2.py b/project_euler/problem_010/sol2.py index a288bb85fd52..ca3a8da3e087 100644 --- a/project_euler/problem_010/sol2.py +++ b/project_euler/problem_010/sol2.py @@ -16,8 +16,10 @@ def is_prime(number: int) -> bool: - """ - Returns boolean representing primality of given number num. + """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. + Returns boolean representing primality of given number num (i.e., if the + result is true, then the number is indeed prime else it is not). >>> is_prime(2) True @@ -27,11 +29,33 @@ def is_prime(number: int) -> bool: False >>> is_prime(2999) True + >>> is_prime(0) + False + >>> is_prime(1) + False + >>> is_prime(3.14) + Traceback (most recent call last): + ... + AssertionError: 'number' must been an int and positive """ - if number % 2 == 0 and number > 2: + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes return False - return all(number % i for i in range(3, int(math.sqrt(number)) + 1, 2)) + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False + return True def prime_generator() -> Iterator[int]: diff --git a/project_euler/problem_027/sol1.py b/project_euler/problem_027/sol1.py index 928c0ec4feb7..7fbd9361415e 100644 --- a/project_euler/problem_027/sol1.py +++ b/project_euler/problem_027/sol1.py @@ -23,22 +23,46 @@ import math -def is_prime(k: int) -> bool: - """ - Determine if a number is prime - >>> is_prime(10) +def is_prime(number: int) -> bool: + """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. + Returns boolean representing primality of given number num (i.e., if the + result is true, then the number is indeed prime else it is not). + + >>> is_prime(2) + True + >>> is_prime(3) + True + >>> is_prime(27) False - >>> is_prime(11) + >>> is_prime(2999) True + >>> is_prime(0) + False + >>> is_prime(1) + False + >>> is_prime(3.14) + Traceback (most recent call last): + ... + AssertionError: 'number' must been an int and positive """ - if k < 2 or k % 2 == 0: - return False - elif k == 2: + + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes return True - else: - for x in range(3, int(math.sqrt(k) + 1), 2): - if k % x == 0: - return False + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes + return False + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False return True diff --git a/project_euler/problem_037/sol1.py b/project_euler/problem_037/sol1.py index 0411ad41ba2f..0288ed30cefb 100644 --- a/project_euler/problem_037/sol1.py +++ b/project_euler/problem_037/sol1.py @@ -1,4 +1,7 @@ """ +Truncatable primes +Problem 37: https://projecteuler.net/problem=37 + The number 3797 has an interesting property. Being prime itself, it is possible to continuously remove digits from left to right, and remain prime at each stage: 3797, 797, 97, and 7. Similarly we can work from right to left: 3797, 379, 37, and 3. @@ -11,28 +14,51 @@ from __future__ import annotations -seive = [True] * 1000001 -seive[1] = False -i = 2 -while i * i <= 1000000: - if seive[i]: - for j in range(i * i, 1000001, i): - seive[j] = False - i += 1 +import math -def is_prime(n: int) -> bool: - """ - Returns True if n is prime, - False otherwise, for 1 <= n <= 1000000 - >>> is_prime(87) +def is_prime(number: int) -> bool: + """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(25363) + >>> is_prime(2) + True + >>> is_prime(3) + True + >>> is_prime(27) + False + >>> is_prime(87) + False + >>> is_prime(563) + True + >>> is_prime(2999) + True + >>> is_prime(67483) False """ - return seive[n] + + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes + return False + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False + return True def list_truncated_nums(n: int) -> list[int]: diff --git a/project_euler/problem_041/sol1.py b/project_euler/problem_041/sol1.py index 80ef2125b82a..b7c0f5779635 100644 --- a/project_euler/problem_041/sol1.py +++ b/project_euler/problem_041/sol1.py @@ -12,25 +12,50 @@ """ from __future__ import annotations +import math from itertools import permutations -from math import sqrt -def is_prime(n: int) -> bool: - """ - Returns True if n is prime, - False otherwise. - >>> is_prime(67483) +def is_prime(number: int) -> bool: + """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(563) + >>> is_prime(1) + False + >>> is_prime(2) True + >>> is_prime(3) + True + >>> is_prime(27) + False >>> is_prime(87) False + >>> is_prime(563) + True + >>> is_prime(2999) + True + >>> is_prime(67483) + False """ - if n % 2 == 0: + + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes return False - for i in range(3, int(sqrt(n) + 1), 2): - if n % i == 0: + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: return False return True diff --git a/project_euler/problem_046/sol1.py b/project_euler/problem_046/sol1.py index 550c4c7c4268..6d63dbf08a85 100644 --- a/project_euler/problem_046/sol1.py +++ b/project_euler/problem_046/sol1.py @@ -19,30 +19,54 @@ from __future__ import annotations -seive = [True] * 100001 -i = 2 -while i * i <= 100000: - if seive[i]: - for j in range(i * i, 100001, i): - seive[j] = False - i += 1 +import math -def is_prime(n: int) -> bool: - """ - Returns True if n is prime, - False otherwise, for 2 <= n <= 100000 +def is_prime(number: int) -> bool: + """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 - >>> is_prime(23) + >>> is_prime(563) + True + >>> is_prime(2999) True - >>> is_prime(25363) + >>> is_prime(67483) False """ - return seive[n] + + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes + return False + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False + return True -odd_composites = [num for num in range(3, len(seive), 2) if not is_prime(num)] +odd_composites = [num for num in range(3, 100001, 2) if not is_prime(num)] def compute_nums(n: int) -> list[int]: diff --git a/project_euler/problem_049/sol1.py b/project_euler/problem_049/sol1.py index dd2ef71a38a8..98d383794cb7 100644 --- a/project_euler/problem_049/sol1.py +++ b/project_euler/problem_049/sol1.py @@ -25,32 +25,51 @@ The bruteforce of this solution will be about 1 sec. """ +import math from itertools import permutations -from math import floor, sqrt def is_prime(number: int) -> bool: - """ - function to check whether the number is prime or not. - >>> is_prime(2) - True - >>> is_prime(6) + """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(-800) + >>> is_prime(2) + True + >>> is_prime(3) + True + >>> is_prime(27) + False + >>> is_prime(87) False - >>> is_prime(104729) + >>> is_prime(563) + True + >>> is_prime(2999) True + >>> is_prime(67483) + False """ - if number < 2: + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes return False - for i in range(2, floor(sqrt(number)) + 1): - if number % i == 0: + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: return False - return True diff --git a/project_euler/problem_058/sol1.py b/project_euler/problem_058/sol1.py index c59b0dd71af1..02dfe68077c3 100644 --- a/project_euler/problem_058/sol1.py +++ b/project_euler/problem_058/sol1.py @@ -33,29 +33,51 @@ count of current primes. """ -from math import isqrt +import math -def is_prime(number: int) -> int: - """ - Returns whether the given number is prime or not +def is_prime(number: int) -> bool: + """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) - 0 - >>> is_prime(17) - 1 - >>> is_prime(10000) - 0 + False + >>> is_prime(2) + True + >>> is_prime(3) + True + >>> is_prime(27) + False + >>> is_prime(87) + False + >>> is_prime(563) + True + >>> is_prime(2999) + True + >>> is_prime(67483) + False """ - if number == 1: - return 0 - - if number % 2 == 0 and number > 2: - return 0 - for i in range(3, isqrt(number) + 1, 2): - if number % i == 0: - return 0 - return 1 + # precondition + assert isinstance(number, int) and ( + number >= 0 + ), "'number' must been an int and positive" + + if 1 < number < 4: + # 2 and 3 are primes + return True + elif number < 2 or number % 2 == 0 or number % 3 == 0: + # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes + return False + + # All primes number are in format of 6k +/- 1 + for i in range(5, int(math.sqrt(number) + 1), 6): + if number % i == 0 or number % (i + 2) == 0: + return False + return True def solution(ratio: float = 0.1) -> int: From 2c9b49a077c4304f1e25da50ead7c0deac4e3a48 Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 19 Jul 2022 20:34:17 -0400 Subject: [PATCH 2/6] fixes broken solution --- project_euler/problem_027/sol1.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/project_euler/problem_027/sol1.py b/project_euler/problem_027/sol1.py index 7fbd9361415e..c93e2b4fa251 100644 --- a/project_euler/problem_027/sol1.py +++ b/project_euler/problem_027/sol1.py @@ -41,17 +41,10 @@ def is_prime(number: int) -> bool: False >>> is_prime(1) False - >>> is_prime(3.14) - Traceback (most recent call last): - ... - AssertionError: 'number' must been an int and positive + >>> is_prime(-10) + False """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True From a28245cf82c72bfc40d29f652bf01aea79a6182b Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 20 Jul 2022 17:39:17 -0400 Subject: [PATCH 3/6] removes assert --- project_euler/problem_003/sol1.py | 5 ----- project_euler/problem_007/sol1.py | 5 ----- project_euler/problem_007/sol2.py | 5 ----- project_euler/problem_007/sol3.py | 5 ----- project_euler/problem_010/sol1.py | 5 ----- project_euler/problem_010/sol2.py | 5 ----- project_euler/problem_037/sol1.py | 5 ----- project_euler/problem_041/sol1.py | 5 ----- project_euler/problem_046/sol1.py | 5 ----- project_euler/problem_049/sol1.py | 5 ----- project_euler/problem_058/sol1.py | 5 ----- 11 files changed, 55 deletions(-) diff --git a/project_euler/problem_003/sol1.py b/project_euler/problem_003/sol1.py index 7e60dd721a1a..7c3b3e953cce 100644 --- a/project_euler/problem_003/sol1.py +++ b/project_euler/problem_003/sol1.py @@ -37,11 +37,6 @@ def is_prime(number: int) -> bool: AssertionError: 'number' must been an int and positive """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_007/sol1.py b/project_euler/problem_007/sol1.py index 2a1a723a8b0f..8f58c51507bd 100644 --- a/project_euler/problem_007/sol1.py +++ b/project_euler/problem_007/sol1.py @@ -39,11 +39,6 @@ def is_prime(number: int) -> bool: AssertionError: 'number' must been an int and positive """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_007/sol2.py b/project_euler/problem_007/sol2.py index cc2807b7d2fc..9249ea91b5e1 100644 --- a/project_euler/problem_007/sol2.py +++ b/project_euler/problem_007/sol2.py @@ -38,11 +38,6 @@ def is_prime(number: int) -> bool: AssertionError: 'number' must been an int and positive """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_007/sol3.py b/project_euler/problem_007/sol3.py index c90d5906398f..eef491cc0b0e 100644 --- a/project_euler/problem_007/sol3.py +++ b/project_euler/problem_007/sol3.py @@ -39,11 +39,6 @@ def is_prime(number: int) -> bool: AssertionError: 'number' must been an int and positive """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_010/sol1.py b/project_euler/problem_010/sol1.py index 0ba570eb8824..3ac01a0bede2 100644 --- a/project_euler/problem_010/sol1.py +++ b/project_euler/problem_010/sol1.py @@ -38,11 +38,6 @@ def is_prime(number: int) -> bool: AssertionError: 'number' must been an int and positive """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_010/sol2.py b/project_euler/problem_010/sol2.py index ca3a8da3e087..8b661bfe641f 100644 --- a/project_euler/problem_010/sol2.py +++ b/project_euler/problem_010/sol2.py @@ -39,11 +39,6 @@ def is_prime(number: int) -> bool: AssertionError: 'number' must been an int and positive """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_037/sol1.py b/project_euler/problem_037/sol1.py index 0288ed30cefb..ef7686cbcb96 100644 --- a/project_euler/problem_037/sol1.py +++ b/project_euler/problem_037/sol1.py @@ -42,11 +42,6 @@ def is_prime(number: int) -> bool: False """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_041/sol1.py b/project_euler/problem_041/sol1.py index b7c0f5779635..2ef0120684c3 100644 --- a/project_euler/problem_041/sol1.py +++ b/project_euler/problem_041/sol1.py @@ -41,11 +41,6 @@ def is_prime(number: int) -> bool: False """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_046/sol1.py b/project_euler/problem_046/sol1.py index 6d63dbf08a85..07dd9bbf84c8 100644 --- a/project_euler/problem_046/sol1.py +++ b/project_euler/problem_046/sol1.py @@ -47,11 +47,6 @@ def is_prime(number: int) -> bool: False """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_049/sol1.py b/project_euler/problem_049/sol1.py index 98d383794cb7..5c7560cbddae 100644 --- a/project_euler/problem_049/sol1.py +++ b/project_euler/problem_049/sol1.py @@ -54,11 +54,6 @@ def is_prime(number: int) -> bool: False """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True diff --git a/project_euler/problem_058/sol1.py b/project_euler/problem_058/sol1.py index 02dfe68077c3..6a991c58b6b8 100644 --- a/project_euler/problem_058/sol1.py +++ b/project_euler/problem_058/sol1.py @@ -61,11 +61,6 @@ def is_prime(number: int) -> bool: False """ - # precondition - assert isinstance(number, int) and ( - number >= 0 - ), "'number' must been an int and positive" - if 1 < number < 4: # 2 and 3 are primes return True From afafca5716ac31abf2f8294043a187cca934f2df Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 20 Jul 2022 17:39:17 -0400 Subject: [PATCH 4/6] removes assert --- project_euler/problem_003/sol1.py | 4 ---- project_euler/problem_007/sol1.py | 4 ---- project_euler/problem_007/sol2.py | 4 ---- project_euler/problem_007/sol3.py | 4 ---- project_euler/problem_010/sol1.py | 4 ---- project_euler/problem_010/sol2.py | 4 ---- 6 files changed, 24 deletions(-) diff --git a/project_euler/problem_003/sol1.py b/project_euler/problem_003/sol1.py index 7c3b3e953cce..938eaf9dff2f 100644 --- a/project_euler/problem_003/sol1.py +++ b/project_euler/problem_003/sol1.py @@ -31,10 +31,6 @@ def is_prime(number: int) -> bool: False >>> is_prime(1) False - >>> is_prime(3.14) - Traceback (most recent call last): - ... - AssertionError: 'number' must been an int and positive """ if 1 < number < 4: diff --git a/project_euler/problem_007/sol1.py b/project_euler/problem_007/sol1.py index 8f58c51507bd..41c26e6c60f3 100644 --- a/project_euler/problem_007/sol1.py +++ b/project_euler/problem_007/sol1.py @@ -33,10 +33,6 @@ def is_prime(number: int) -> bool: False >>> is_prime(1) False - >>> is_prime(3.14) - Traceback (most recent call last): - ... - AssertionError: 'number' must been an int and positive """ if 1 < number < 4: diff --git a/project_euler/problem_007/sol2.py b/project_euler/problem_007/sol2.py index 9249ea91b5e1..186227751846 100644 --- a/project_euler/problem_007/sol2.py +++ b/project_euler/problem_007/sol2.py @@ -32,10 +32,6 @@ def is_prime(number: int) -> bool: False >>> is_prime(1) False - >>> is_prime(3.14) - Traceback (most recent call last): - ... - AssertionError: 'number' must been an int and positive """ if 1 < number < 4: diff --git a/project_euler/problem_007/sol3.py b/project_euler/problem_007/sol3.py index eef491cc0b0e..3dd5fc832506 100644 --- a/project_euler/problem_007/sol3.py +++ b/project_euler/problem_007/sol3.py @@ -33,10 +33,6 @@ def is_prime(number: int) -> bool: False >>> is_prime(1) False - >>> is_prime(3.14) - Traceback (most recent call last): - ... - AssertionError: 'number' must been an int and positive """ if 1 < number < 4: diff --git a/project_euler/problem_010/sol1.py b/project_euler/problem_010/sol1.py index 3ac01a0bede2..31f2feda3728 100644 --- a/project_euler/problem_010/sol1.py +++ b/project_euler/problem_010/sol1.py @@ -32,10 +32,6 @@ def is_prime(number: int) -> bool: False >>> is_prime(1) False - >>> is_prime(3.14) - Traceback (most recent call last): - ... - AssertionError: 'number' must been an int and positive """ if 1 < number < 4: diff --git a/project_euler/problem_010/sol2.py b/project_euler/problem_010/sol2.py index 8b661bfe641f..245cca1d1720 100644 --- a/project_euler/problem_010/sol2.py +++ b/project_euler/problem_010/sol2.py @@ -33,10 +33,6 @@ def is_prime(number: int) -> bool: False >>> is_prime(1) False - >>> is_prime(3.14) - Traceback (most recent call last): - ... - AssertionError: 'number' must been an int and positive """ if 1 < number < 4: From 74845c90e1f4c35cd1a9c57c8dfd89a74c3c0cb8 Mon Sep 17 00:00:00 2001 From: Nikos Giachoudis Date: Fri, 29 Jul 2022 10:29:09 -0400 Subject: [PATCH 5/6] Apply suggestions from code review Co-authored-by: John Law --- project_euler/problem_007/sol1.py | 2 +- project_euler/problem_007/sol2.py | 2 +- project_euler/problem_007/sol3.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/project_euler/problem_007/sol1.py b/project_euler/problem_007/sol1.py index 41c26e6c60f3..f52ff931f9a8 100644 --- a/project_euler/problem_007/sol1.py +++ b/project_euler/problem_007/sol1.py @@ -18,7 +18,7 @@ def is_prime(number: int) -> bool: """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. - Returns boolean representing primality of given number num (i.e., if the + Returns boolean representing primality of given number (i.e., if the result is true, then the number is indeed prime else it is not). >>> is_prime(2) diff --git a/project_euler/problem_007/sol2.py b/project_euler/problem_007/sol2.py index 186227751846..75d351889ea8 100644 --- a/project_euler/problem_007/sol2.py +++ b/project_euler/problem_007/sol2.py @@ -17,7 +17,7 @@ def is_prime(number: int) -> bool: """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. - Returns boolean representing primality of given number num (i.e., if the + Returns boolean representing primality of given number (i.e., if the result is true, then the number is indeed prime else it is not). >>> is_prime(2) diff --git a/project_euler/problem_007/sol3.py b/project_euler/problem_007/sol3.py index 3dd5fc832506..774260db99a0 100644 --- a/project_euler/problem_007/sol3.py +++ b/project_euler/problem_007/sol3.py @@ -18,7 +18,7 @@ def is_prime(number: int) -> bool: """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. - Returns boolean representing primality of given number num (i.e., if the + Returns boolean representing primality of given number (i.e., if the result is true, then the number is indeed prime else it is not). >>> is_prime(2) From 41da130c6d422cd198edfa6a739d003400eacc9f Mon Sep 17 00:00:00 2001 From: John Law Date: Wed, 14 Sep 2022 09:33:30 +0100 Subject: [PATCH 6/6] Update project_euler/problem_003/sol1.py --- project_euler/problem_003/sol1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_euler/problem_003/sol1.py b/project_euler/problem_003/sol1.py index 938eaf9dff2f..a7d01bb041ba 100644 --- a/project_euler/problem_003/sol1.py +++ b/project_euler/problem_003/sol1.py @@ -16,7 +16,7 @@ def is_prime(number: int) -> bool: """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. - Returns boolean representing primality of given number num (i.e., if the + Returns boolean representing primality of given number (i.e., if the result is true, then the number is indeed prime else it is not). >>> is_prime(2)