matlab - define the prompted number is prime or not -


i want code define prompted number user prime or not . since it's assignment i'm not allowed use ' isprime ' predefined code . following approach not useful :

n = input( 'please enter positive enteger value = ' ) ;  quotient = floor(n - (mod(n,2)./2)) ;  = 1 : quotient       if mod(n,i ) == 0          fprintf(' prompted number not prime ' ) ;         if mod(n,i) ~= 0              fprintf(' prompted number   prime ' ) ;          end     end end 

for example if enter prime number 13 results in :

 prompted number  prime 

but if enter non-prime num 12 repeats ' prompted number prime ' message 10 times .

for = 1 : quotient       if mod(n,i ) == 0  

that give every number since x mod 1 zero. in other words, remainder (when divide positive integer one) zero, since of them divide perfectly.

you need start @ 2 rather 1.

in addition, once you've found out number not prime, should stop loop since there's no possibility of becoming prime again after :-) and, efficiency, need go square root of number since, if has factor above that, have found equivalent factor below that.

the pseudo-code such beast be:

set isprime true set chkval 2 while chkval * chkval <= number:     if number mod chkval zero:         set isprime false         exit while     end if     increment chkval end while if isprime:     number, " prime" else:     number, " composite" 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -