How do I make a function that checks the divisibility of a given number, n, by 3, 5, 7, and 11.
3 views (last 30 days)
Show older comments
Ian Karin
on 30 Apr 2015
Commented: Walter Roberson
on 29 Oct 2021
I am trying to write a function div - divisibility(n) that checks the divisibility of a given number input n, by 3, 5, 7, and 11 for a hw problem. The problem requires that my output be a logical vector output of 4 elements corresponding to the divisibility by 3, 5, 7 and 11, respectively. For example, the output of divisibility(14) would be [0 0 1 0]. I have figured out how to write a function that gives a single output, but I do not know how to write a function that outputs a logical vector.
All I have so far is:
function div = divisibility(a)
div = rem(a,3)
end
0 Comments
Accepted Answer
Star Strider
on 30 Apr 2015
This works:
divisibility = @(x) rem(x, [3 5 7 11]) == 0;
div = divisibility(14)
producing:
div =
0 0 1 0
4 Comments
Andrea Guzman
on 29 Oct 2021
When you run the function like this, you produce both the div logical array and an ans logical array. How do you get rid of the ans logical array
More Answers (1)
Chad Greene
on 30 Apr 2015
22 is divisible by 11. The logical command makes all nonzeros into ones and the tilde (~) then takes the not of the logical. What you're left with is a one wherever the remainder is zero.
a = 22;
div = ~logical(rem(a,[3 5 9 11 44]))
0 Comments
See Also
Categories
Find more on Special Characters 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!