Finding all numbers which is divisible by 5

8 views (last 30 days)
Hello,
I would like to write a program which identifies all number which divisible by 5 by using while loop and mod.
Here is what I have so far.
a=input('Enter the threshold: ');
disp('Following number is devided by 5' + a);
number = 1;
while number<=a
if mod(a,5)==0
disp(a);
end
number=number+1
end
disp("The following numbers are divisible by 5: " + mod)
and the outcome display should look like this...
Enter the threshold: 100(For example)
The following numbers are divisible by 5: 5, 10, 15, 20 ...100(For example of threshold 100)
I really appreciate your response in advance!
  2 Comments
Geoff Hayes
Geoff Hayes on 6 Nov 2019
Takashi - one problem with the code is that on each iteration of the while loop, you are always using a with
if mod(a,5)==0
disp(a);
end
Since a never changes, then I suspect that you want to be using number instead.
Do you need to use a while loop? Is this a condition of the assignment/homework?
Also, consider using fprint (instead of disp) to write out your messages and the numbers that are divisible by 5.
Takashi Fukushima
Takashi Fukushima on 6 Nov 2019
Yes I have to use while loop since it's homework.
I was wondering using number instead of a. Thanks for your info!

Sign in to comment.

Accepted Answer

Jeremy
Jeremy on 6 Nov 2019
Edited: Jeremy on 6 Nov 2019
Hi,
In your mod command you want to compare the number variable to 5, not a (a doesn't change). This is why you're getting unexpected results. I would use zeroes to initialize z so that you can save each number that is divisible by 5 like:
a=input('Enter the threshold: ');
number = 1; z = zeros(1,a);
while number <= a
if mod(number,5) == 0
z(number) = number;
end
number=number+1;
end
And then use
find
to extract the indices of z that are nonzero and print them out.
I hope this helped

More Answers (1)

Turlough Hughes
Turlough Hughes on 6 Nov 2019
This is your answer assuming the while loop is a must:
a=input('Enter the threshold: ');
disp("Following number is devided by 5: " + a);
number = 1;
count=1;
output=[];
while number<=a
if mod(number,5)==0
disp(number);
output(count)=number;
count=count+1;
end
number=number+1;
end
disp(['The following numbers are divisible by 5: ' num2str(output)])
Though you could do it also without a loop:
a=input('Enter the threshold: ');
disp("Following number is devided by 5: " + a);
range=1:a;
output=range(mod(range,5)==0)
disp(['The following numbers are divisible by 5: ' num2str(output)])

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!