Finding all numbers which is divisible by 5

7 vues (au cours des 30 derniers jours)
Takashi Fukushima
Takashi Fukushima le 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 commentaires
Geoff Hayes
Geoff Hayes le 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 le 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!

Connectez-vous pour commenter.

Réponse acceptée

Jeremy
Jeremy le 6 Nov 2019
Modifié(e) : Jeremy le 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

Plus de réponses (1)

Turlough Hughes
Turlough Hughes le 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)])

Catégories

En savoir plus sur Timing and presenting 2D and 3D stimuli dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by