Asked by Geo
on 29 Jul 2017

I want to evaluate the first integer evenly divisible by 3 and 5 using a Matlab code. My attempt is the following:

n=1;

while mod(n,5)~=0 && mod(n,3)~=0

n=n+1;

end

n

I'm new to Matlab and wondering where the issue here is. The code returns n=3 for some reason. I also want to extend this to find the first number evenly divisible by 1-10, for which I wrote the following while loop which also did not return the expected value. Where is my error?

n=1;

while mod(n,1:10)~=0

n=n+1;

end

n

Thank you.

Answer by the cyclist
on 29 Jul 2017

Edited by the cyclist
on 29 Jul 2017

In your second case, you are doing

mod(1,1)

then

mod(2,2)

then

mod(3,3)

and so on, because you are always incrementing n right along with k. Those mod functions are always equal to zero, so they always satisfy the while condition, so you get to n = 10.

Sign in to comment.

Answer by Teja Muppirala
on 30 Jul 2017

You were on the right track. This gives 2520:

n=1;

while any( mod(n,1:10)~=0 )

n=n+1;

end

n

When your conditional has more than one element, all of them must be true for it to evaluate as true. This will return 'B' and 'C'.

if [1 1 1 0]

disp('A')

else

disp('B')

end

if [1 1 1 1]

disp('C')

else

disp('D')

end

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 3 Comments

## Geo (view profile)

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/350791-where-is-the-issue-in-my-while-statement#comment_472940

## Geo (view profile)

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/350791-where-is-the-issue-in-my-while-statement#comment_472943

## Walter Roberson (view profile)

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/350791-where-is-the-issue-in-my-while-statement#comment_472945

Sign in to comment.