Code printing double line
Show older comments
num1 =input('Enter your 1st number: ');
num2 =input('Enter your 2nd number: ');
%returns an 1-by-num2 matrix of zeros
PerfectNumber= zeros(1,num2);
for pp = num1:num2 % pp = Potential Perfect number, variable for the range
if true
end
pd = 1:pp-1;
%test all potential numbers up to pp-1 because of the definition of a perfect number.
%potential divisors, named 'pd' in the code
if (sum(pd(mod(pp,pd) == 0)) == pp)
%mod(pp,pd) returns the remainder after dividing pp by pd.
%If a number is a divisor, the remainder is 0, so mod return zero.
%check if the sum of all divisors = pp
PerfectNumber(pp) = pp;
%it have found a perfect number and store this number in a variable 'output' at the pp'th position
if false
else PerfectNumber (PerfectNumber == 0) = [];
%all positions where output is 0 are replaced by the empty matrix []
fprintf ('\nThe Perfect Numbers are : %d', PerfectNumber);
%And it will print out the name line + the perfect number
end
%After this loop we have the perfect numbers at the position of the perfect numbers.
end
end
fprintf ('\nThe program ends here, Good bye %s !',un);
%to inform the user that the program has ended or when the entry is invalid it end the program.
end
And my out put would be
Enter your 1st number: 1
Enter your 2nd number: 50
The Perfect Numbers are : 6
The Perfect Numbers are : 6
The Perfect Numbers are : 28
The program ends here, Good bye !>>
What should i do to my code so that it only print the line "The Perfect Numbers are : 6" once and not double like this.
Accepted Answer
More Answers (0)
Categories
Find more on Function Creation 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!