# how do i check if a number is a prime number, a square, and or a factor of 6?

22 views (last 30 days)
Vjon Joson on 1 Apr 2020
Edited: DGM on 5 Jan 2023
here is the current idea for the code so far
integer = 4;
if % ** check if integer is a prime **
Prime = integer % => If condition is met
elseif % ** check if the number is square **
Square = integer % => Else condition is met
elseif % chekc if divisible by 6
Factorof6=integer
end
##### 3 CommentsShow 1 older commentHide 1 older comment
Walter Roberson on 5 Jan 2023
DGM on 5 Jan 2023
Edited: DGM on 5 Jan 2023
x = 100:999; % a set of numbers as a row vector
issquare = ~mod(sqrt(x),1); % implicit binarization
ismultiple = ~mod(x,[2; 3; 5]); % implicit expansion
validnums = issquare & ~any(ismultiple,1); % logical combination of masks
x(validnums) % logical indexing
ans = 1×7
121 169 289 361 529 841 961
Now you have to make a function out of it.

Birdman on 1 Apr 2020
n=4;
%check if number is prime
isprime(n) %returns logical value
%check if number is square
mod(numel(factor(n)),2)==0 %returns logical value
%check if number is divisible by 6
mod(n,6)==0 %returns logical value
Torsten on 15 Oct 2022
Edited: Torsten on 15 Oct 2022
2*3 = 6, and 6 is not a square.
Yes, the answer given is incorrect.
mod(numel(factor(a)),2)==0 is not sufficient for "a" to be a square.
Walter Roberson on 16 Oct 2022
https://www.mathworks.com/matlabcentral/answers/514501-how-do-i-check-if-a-number-is-a-prime-number-a-square-and-or-a-factor-of-6#comment_819105 shows a revised test (which I did not examine)