how to use conditional statement realizing prime function
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Shuoze Xu
am 17 Jun. 2022
Kommentiert: Walter Roberson
am 19 Jun. 2022
Hi.
I want to use code to check if a number isprime. I know isprime () but I don't want to use it because I want to know how to use judgments to do tha.
Here is my code.
%function code
function[a,b] = isPrime(n)
% A number, n, is not prime if any number between 2 and n/2 divides the number without any remainder.
a = 1; % a = 1 means true
b = 0; % b = 0 means false
half = n/2; % get the half nums of n
for i = 2:half
if(mod(n,i)~=0) % if there is remainder
continue; % keep check
elseif(mod(n,i) == 0)
disp(b); % display false
break; % stop loop
end
disp(a);
end
end
% driver code
n = 9;
[x1,x2]= isPrime(n);
disp(isPrime(n));
Sample test:
isPrimedriver
0
0
1
It should output zero and stop looping, why it work twice?
And how to modify my code?
Thank you.
4 Kommentare
Walter Roberson
am 18 Jun. 2022
Bearbeitet: Walter Roberson
am 18 Jun. 2022
there are exceptions:
- mod(inf,i) is nan
- mod(nan,i) is nan
- problems if n is empty or not a scalar
Akzeptierte Antwort
Voss
am 18 Jun. 2022
Your driver code is calling isPrime two times.
% driver code
n = 9;
The first time, you only get a disp(b) from inside isPrime
[x1,x2]= isPrime(n);
The second time, you get a disp(b) from inside isPrime and then, after isPrime is done, you also disp the returned value from isPrime, which is a
disp(isPrime(n));
%function code
function[a,b] = isPrime(n)
% A number, n, is not prime if any number between 2 and n/2 divides the number without any remainder.
a = 1; % a = 1 means true
b = 0; % b = 0 means false
half = n/2; % get the half nums of n
for i = 2:half
if(mod(n,i)~=0) % if there is remainder
continue; % keep check
elseif(mod(n,i) == 0)
disp(b); % display false
break; % stop loop
end
disp(a);
end
end
0 Kommentare
Weitere Antworten (1)
Walter Roberson
am 17 Jun. 2022
Hint:
prime_detected = true
for appropriate things
if appropriate condition
prime_detected = false;
break;
end
end
Siehe auch
Kategorien
Mehr zu Number Theory finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!