Project Euler Problem #1 - Multiples of 3 and 5 (in Python)

# 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

Explanation of the one-liner:

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