From a5c44cf11f8aa3d80bc96f6fb9bd5de37f8f75b3 Mon Sep 17 00:00:00 2001 From: Carlos Meza Date: Mon, 5 Oct 2020 17:29:32 -0700 Subject: [PATCH 1/5] add type hints --- project_euler/problem_01/sol1.py | 3 ++- project_euler/problem_01/sol2.py | 2 +- project_euler/problem_01/sol3.py | 2 +- project_euler/problem_01/sol4.py | 2 +- project_euler/problem_01/sol5.py | 2 +- project_euler/problem_01/sol6.py | 2 +- project_euler/problem_01/sol7.py | 2 +- 7 files changed, 8 insertions(+), 7 deletions(-) diff --git a/project_euler/problem_01/sol1.py b/project_euler/problem_01/sol1.py index e81156edaee4..45f436c549be 100644 --- a/project_euler/problem_01/sol1.py +++ b/project_euler/problem_01/sol1.py @@ -1,3 +1,4 @@ +# noqa: flake """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, @@ -6,7 +7,7 @@ """ -def solution(n): +def solution(n: int) -> int: """Returns the sum of all the multiples of 3 or 5 below n. >>> solution(3) diff --git a/project_euler/problem_01/sol2.py b/project_euler/problem_01/sol2.py index 8041c7ffa589..f625753ebdbe 100644 --- a/project_euler/problem_01/sol2.py +++ b/project_euler/problem_01/sol2.py @@ -6,7 +6,7 @@ """ -def solution(n): +def solution(n: int) -> int: """Returns the sum of all the multiples of 3 or 5 below n. >>> solution(3) diff --git a/project_euler/problem_01/sol3.py b/project_euler/problem_01/sol3.py index c0bcbc06ec83..a2d67a3b0d11 100644 --- a/project_euler/problem_01/sol3.py +++ b/project_euler/problem_01/sol3.py @@ -6,7 +6,7 @@ """ -def solution(n): +def solution(n: int) -> int: """ This solution is based on the pattern that the successive numbers in the series follow: 0+3,+2,+1,+3,+1,+2,+3. diff --git a/project_euler/problem_01/sol4.py b/project_euler/problem_01/sol4.py index e01dc977d8cf..fa437b2057c6 100644 --- a/project_euler/problem_01/sol4.py +++ b/project_euler/problem_01/sol4.py @@ -6,7 +6,7 @@ """ -def solution(n): +def solution(n: int) -> int: """Returns the sum of all the multiples of 3 or 5 below n. >>> solution(3) diff --git a/project_euler/problem_01/sol5.py b/project_euler/problem_01/sol5.py index bd96d965f92d..3b86e0eb1399 100644 --- a/project_euler/problem_01/sol5.py +++ b/project_euler/problem_01/sol5.py @@ -8,7 +8,7 @@ """A straightforward pythonic solution using list comprehension""" -def solution(n): +def solution(n: int) -> int: """Returns the sum of all the multiples of 3 or 5 below n. >>> solution(3) diff --git a/project_euler/problem_01/sol6.py b/project_euler/problem_01/sol6.py index c9f94b9f77c8..eff3588ce00b 100644 --- a/project_euler/problem_01/sol6.py +++ b/project_euler/problem_01/sol6.py @@ -6,7 +6,7 @@ """ -def solution(n): +def solution(n: int) -> int: """Returns the sum of all the multiples of 3 or 5 below n. >>> solution(3) diff --git a/project_euler/problem_01/sol7.py b/project_euler/problem_01/sol7.py index a0510b54c409..aef9e8330ec1 100644 --- a/project_euler/problem_01/sol7.py +++ b/project_euler/problem_01/sol7.py @@ -6,7 +6,7 @@ """ -def solution(n): +def solution(n: int) -> int: """Returns the sum of all the multiples of 3 or 5 below n. >>> solution(3) From e309fc6f8e47175aeee7337af27c45ca747fedd0 Mon Sep 17 00:00:00 2001 From: Carlos Meza Date: Mon, 5 Oct 2020 17:32:37 -0700 Subject: [PATCH 2/5] remove unnecessary list comprehension --- project_euler/problem_01/sol1.py | 2 +- project_euler/problem_01/sol5.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/project_euler/problem_01/sol1.py b/project_euler/problem_01/sol1.py index 45f436c549be..5e8f693c684b 100644 --- a/project_euler/problem_01/sol1.py +++ b/project_euler/problem_01/sol1.py @@ -22,7 +22,7 @@ def solution(n: int) -> int: 0 """ - return sum([e for e in range(3, n) if e % 3 == 0 or e % 5 == 0]) + return sum(e for e in range(3, n) if e % 3 == 0 or e % 5 == 0) if __name__ == "__main__": diff --git a/project_euler/problem_01/sol5.py b/project_euler/problem_01/sol5.py index 3b86e0eb1399..2a5716d34d88 100644 --- a/project_euler/problem_01/sol5.py +++ b/project_euler/problem_01/sol5.py @@ -5,7 +5,7 @@ Find the sum of all the multiples of 3 or 5 below N. """ -"""A straightforward pythonic solution using list comprehension""" +"""A straightforward pythonic solution using comprehension""" def solution(n: int) -> int: @@ -21,7 +21,7 @@ def solution(n: int) -> int: 83700 """ - return sum([i for i in range(n) if i % 3 == 0 or i % 5 == 0]) + return sum(i for i in range(n) if i % 3 == 0 or i % 5 == 0) if __name__ == "__main__": From 5597cf07c3bf87f256539cd0add0cfacf13dd2b0 Mon Sep 17 00:00:00 2001 From: Carlos Meza Date: Mon, 5 Oct 2020 17:34:09 -0700 Subject: [PATCH 3/5] mv str statement into docstr --- project_euler/problem_01/sol5.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/project_euler/problem_01/sol5.py b/project_euler/problem_01/sol5.py index 2a5716d34d88..96ef0fc7f83e 100644 --- a/project_euler/problem_01/sol5.py +++ b/project_euler/problem_01/sol5.py @@ -5,11 +5,10 @@ Find the sum of all the multiples of 3 or 5 below N. """ -"""A straightforward pythonic solution using comprehension""" - def solution(n: int) -> int: """Returns the sum of all the multiples of 3 or 5 below n. + A straightforward pythonic solution using comprehension. >>> solution(3) 0 From 13f5d6a5c988d5411ef52eb21349f6090b37a38b Mon Sep 17 00:00:00 2001 From: Carlos Meza Date: Mon, 5 Oct 2020 17:38:19 -0700 Subject: [PATCH 4/5] rename var to avoid redefining builtin --- project_euler/problem_01/sol2.py | 10 +++++----- project_euler/problem_01/sol3.py | 18 +++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/project_euler/problem_01/sol2.py b/project_euler/problem_01/sol2.py index f625753ebdbe..d69078cee450 100644 --- a/project_euler/problem_01/sol2.py +++ b/project_euler/problem_01/sol2.py @@ -19,14 +19,14 @@ def solution(n: int) -> int: 83700 """ - sum = 0 + total = 0 terms = (n - 1) // 3 - sum += ((terms) * (6 + (terms - 1) * 3)) // 2 # sum of an A.P. + total += ((terms) * (6 + (terms - 1) * 3)) // 2 # total of an A.P. terms = (n - 1) // 5 - sum += ((terms) * (10 + (terms - 1) * 5)) // 2 + total += ((terms) * (10 + (terms - 1) * 5)) // 2 terms = (n - 1) // 15 - sum -= ((terms) * (30 + (terms - 1) * 15)) // 2 - return sum + total -= ((terms) * (30 + (terms - 1) * 15)) // 2 + return total if __name__ == "__main__": diff --git a/project_euler/problem_01/sol3.py b/project_euler/problem_01/sol3.py index a2d67a3b0d11..9a4362e9a00f 100644 --- a/project_euler/problem_01/sol3.py +++ b/project_euler/problem_01/sol3.py @@ -22,38 +22,38 @@ def solution(n: int) -> int: 83700 """ - sum = 0 + total = 0 num = 0 while 1: num += 3 if num >= n: break - sum += num + total += num num += 2 if num >= n: break - sum += num + total += num num += 1 if num >= n: break - sum += num + total += num num += 3 if num >= n: break - sum += num + total += num num += 1 if num >= n: break - sum += num + total += num num += 2 if num >= n: break - sum += num + total += num num += 3 if num >= n: break - sum += num - return sum + total += num + return total if __name__ == "__main__": From ee4ca6e519fb4c3440d19ff906caa26700607a6f Mon Sep 17 00:00:00 2001 From: Carlos Meza Date: Mon, 5 Oct 2020 17:50:26 -0700 Subject: [PATCH 5/5] clean up module docstr --- project_euler/problem_01/sol1.py | 2 +- project_euler/problem_01/sol2.py | 2 +- project_euler/problem_01/sol3.py | 2 +- project_euler/problem_01/sol4.py | 2 +- project_euler/problem_01/sol5.py | 2 +- project_euler/problem_01/sol6.py | 2 +- project_euler/problem_01/sol7.py | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/project_euler/problem_01/sol1.py b/project_euler/problem_01/sol1.py index 5e8f693c684b..ff62bd6ef324 100644 --- a/project_euler/problem_01/sol1.py +++ b/project_euler/problem_01/sol1.py @@ -2,7 +2,7 @@ """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, -we get 3,5,6 and 9. The sum of these multiples is 23. +we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N. """ diff --git a/project_euler/problem_01/sol2.py b/project_euler/problem_01/sol2.py index d69078cee450..022c1e0a1957 100644 --- a/project_euler/problem_01/sol2.py +++ b/project_euler/problem_01/sol2.py @@ -1,7 +1,7 @@ """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, -we get 3,5,6 and 9. The sum of these multiples is 23. +we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N. """ diff --git a/project_euler/problem_01/sol3.py b/project_euler/problem_01/sol3.py index 9a4362e9a00f..b4c5ca72c4d0 100644 --- a/project_euler/problem_01/sol3.py +++ b/project_euler/problem_01/sol3.py @@ -1,7 +1,7 @@ """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, -we get 3,5,6 and 9. The sum of these multiples is 23. +we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N. """ diff --git a/project_euler/problem_01/sol4.py b/project_euler/problem_01/sol4.py index fa437b2057c6..149a19d505c3 100644 --- a/project_euler/problem_01/sol4.py +++ b/project_euler/problem_01/sol4.py @@ -1,7 +1,7 @@ """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, -we get 3,5,6 and 9. The sum of these multiples is 23. +we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N. """ diff --git a/project_euler/problem_01/sol5.py b/project_euler/problem_01/sol5.py index 96ef0fc7f83e..31926a2dc2c9 100644 --- a/project_euler/problem_01/sol5.py +++ b/project_euler/problem_01/sol5.py @@ -1,7 +1,7 @@ """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, -we get 3,5,6 and 9. The sum of these multiples is 23. +we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N. """ diff --git a/project_euler/problem_01/sol6.py b/project_euler/problem_01/sol6.py index eff3588ce00b..31f8bc9b6e8f 100644 --- a/project_euler/problem_01/sol6.py +++ b/project_euler/problem_01/sol6.py @@ -1,7 +1,7 @@ """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, -we get 3,5,6 and 9. The sum of these multiples is 23. +we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N. """ diff --git a/project_euler/problem_01/sol7.py b/project_euler/problem_01/sol7.py index aef9e8330ec1..593fed299aa9 100644 --- a/project_euler/problem_01/sol7.py +++ b/project_euler/problem_01/sol7.py @@ -1,7 +1,7 @@ """ Problem Statement: If we list all the natural numbers below 10 that are multiples of 3 or 5, -we get 3,5,6 and 9. The sum of these multiples is 23. +we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below N. """