# 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. # Find the sum of all the multiples of 3 or 5 below 1000. sum = 0 threeMultiple = False fiveMultiple = False for i in range (3, 1000): threeMultiple = i % 3 == 0 fiveMultiple = i % 5 == 0 if (threeMultiple or fiveMultiple): sum += i print (sum)DOWNLOAD
Or you could do this in a one-liner:
print (sum ( [i for i in range(3, 1000) if i%3 == 0 or i%5 == 0] ) )
DOWNLOAD
The print
function simply prints the return of the sum([])
function.
The sum([])
function takes in an array, sums up the values of each element in the list and returns that (the sum - a single numeric value).
The list to pass to sum([])
is generated in the following code:
[i for i in range(3, 1000) if i%3 == 0 or i%5 == 0]
This says that the list will include every i
in the for loop from 3 to 999 of i
if i
is a multiple of 3 and/or a multiple of 5. It loops through 3 to 999, checks if i
is a multiple
of 3 and/or 5, and adds it to the list if it is.
After the list is created, the sum of that list is returned and printed.
Created: February 10, 2014
Completed in full by: Michael Yaworski