Finding all numbers which is divisible by 5
35 views (last 30 days)
Show older comments
Takashi Fukushima
on 6 Nov 2019
Commented: Takashi Fukushima
on 6 Nov 2019
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
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.
Accepted Answer
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
0 Comments
More Answers (1)
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)])
0 Comments
See Also
Categories
Find more on Subplots 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!