The Wayback Machine - https://web.archive.org/web/20201008212717/https://github.com/TheAlgorithms/Python/pull/2893/files
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup Project Euler Problem 01 #2893

Closed
wants to merge 5 commits into from
@@ -1,12 +1,13 @@
# noqa: flake
"""
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.
"""


def solution(n):
def solution(n: int) -> int:
"""Returns the sum of all the multiples of 3 or 5 below n.
>>> solution(3)
@@ -21,7 +22,7 @@ def solution(n):
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__":
@@ -1,12 +1,12 @@
"""
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.
"""


def solution(n):
def solution(n: int) -> int:
"""Returns the sum of all the multiples of 3 or 5 below n.
>>> solution(3)
@@ -19,14 +19,14 @@ def solution(n):
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__":
@@ -1,12 +1,12 @@
"""
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.
"""


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.
@@ -22,38 +22,38 @@ def solution(n):
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__":
@@ -1,12 +1,12 @@
"""
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.
"""


def solution(n):
def solution(n: int) -> int:
"""Returns the sum of all the multiples of 3 or 5 below n.
>>> solution(3)
@@ -1,15 +1,14 @@
"""
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.
"""

"""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.
A straightforward pythonic solution using comprehension.
>>> solution(3)
0
@@ -21,7 +20,7 @@ def solution(n):
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__":
@@ -1,12 +1,12 @@
"""
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.
"""


def solution(n):
def solution(n: int) -> int:
"""Returns the sum of all the multiples of 3 or 5 below n.
>>> solution(3)
@@ -1,12 +1,12 @@
"""
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.
"""


def solution(n):
def solution(n: int) -> int:
"""Returns the sum of all the multiples of 3 or 5 below n.
>>> solution(3)
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.