Problem
Write a function in matlab to find the number of divisors of a given number using matlab.
Solution
In this problem we will use function definition, for loop, rem function, if statement. If you don't know know any of these then please head on to the links below to learn these:
1) Function definition in Matlab
2) For loop in Matlab
3) Rem function in Matlab(Remainder after division)
4) If statement in Matlab
1) Function definition in Matlab
2) For loop in Matlab
3) Rem function in Matlab(Remainder after division)
4) If statement in Matlab
Program
function result = numberofdivisors(n) %This function will return the number of factors of a given number result = 0; for i = 1:n if rem(n,i) == 0 result = result+1; end end
Download the matlab format file of the above code from here: numberofdivisors.m
Explanation
We will directly start with the iterations of the for loop in order to explain this function. Let us assume that the input number for the function is 28. i.e. numberofdivisors(28)
First iteration
During the first iteration, the value of i is initiated to 1, now digging deep we will encounter a if statement whose condition is if the remainder of the given number vs the iterator is 0 then the condition is satisfied and you can go inside to execute the next line of come again after you have changed your value. But here the condition is satisfied and the next statement is satisfied. So the value of the result is changed from result = result +1 = 0+1 = 1
With this the first iteration is over and the second iteration starts
Second iteration
During the second iteration, the value of i is changed from 1 to 2, next the if statement condition is satisfied and the result is changed from result = result +1 = 1+1 = 2
Now the second iteration is over and the third iteration will start
Third iteration
Here we will directly see the values of each variable so not to make this post lengthy.
i = 3
If statement is not satisfied and thus the value of result is unchanged.
result = 2
With this the third iteration is over and the fourth iteration starts. And this iterations will continue until i reaches the value of 28(or the value of n in general).
Finally the value of the result is returned to the function to give the output and it can be found that the output will be 6 in this case
You can also download this post in the pdf format to read it offline from here: numberofdivisors.pdf
The above code was highlighted using hilite.me
I have tried to explain this program so that it will be easy to understand, but if you have any doubt or didn't understand properly then please contact me from here: Contact me
Run the program and comment below the output you are getting for a given input.
Keywords: matlab functions, number of divisors
Run the program and comment below the output you are getting for a given input.
Keywords: matlab functions, number of divisors