Finding all numbers which is divisible by 5

6 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)])

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!