# Finding the sum of multiples of 3 and 5 below 1000 (Matlab)

1. Aug 23, 2013

1. The problem statement, all variables and given/known data
Project Euler Problem 1.

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.

Hello, there

I do understand what a multiple is, and how to sum and bunch of numbers... but I have no idea why my algorithm is not delivering the correct result.

When I multiply the array [1:333] by 3, shouldn't I get all the multiples of 3 below 1000? (3, 6, 9... etc), and the same goes for the [1:199] by 5 right? This is a really simple problem, but I don't see where I'm going wrong here

2. The attempt at a solution
clc
clear

x3 = [1:333]*3
x5 = [1:199]*5

all_multi_array = [x3,x5]

sum(all_multi_array)

2. Aug 23, 2013

### Staff: Mentor

What happens with 15?
How many times do you count it in your algorithm?

3. Aug 23, 2013

ahhh... I count it twice!

and the same goes for 30, 45, 60, etc I'm guessing...

EDIT:
Yes, it returned a correct result for my following algorithm

clc
clear

x3 = [1:333]*3
x5 = [1:199]*5

all_multi_array = [x3,x5]

sum(all_multi_array) - sum((15)*[1:66])

Thanks for the hint mfb :thumbs:

4. Aug 23, 2013

### D H

Staff Emeritus
Rather than hard-coding those array limits (333, 199, 66), wouldn't it be better to calculate them given some arbitrary N, where in this case N happens to be 1000?

Without forming those arrays, what is the sum of [1:333]? [1:199]? [1:66]?

5. Aug 23, 2013

I guess it would add some extra scope to the code. I could make N = 999 (because it must be less than 1000) and use the "floor" command in matab to round the numbers when I divide them by 3,5 and 15 respectively.

EDIT:
The only way I could think of finding the sum of those numbers without creating an array, would be with loops. But that's the opposite of modularisation... so I'm not sure :tongue:

Last edited: Aug 23, 2013
6. Aug 23, 2013

### Staff: Mentor

There is a direct formula for the sum of the first N integers, and you can adapt it to your sums.

It is not necessary to solve the original problem, but it is still nice to see how it can be generalized.