swift - Identify prime number -


for reason, gave me wrong result. it's isitprime = true no matter number assigned "number" variable.

this code:

let number = 6 var = 1 var isitprime: bool? while < number {     if number % == 0 {         isitprime = false     } else {         isitprime = true     }     += 1 } print(isitprime) 

can explain me what's wrong code , why isitprime bool outputs true ?

problem 1

the last iteration of while loop

while < number {     if number % == 0 {         isitprime = false     } else {         isitprime = true     }     += 1 } 

does overwrite result.

so end following result

if number % (number-1) == 0 {     isitprime = false } else {     isitprime = true } 

problem 2

finally every number can divided 1, should start i 2. so

let number = 6 var = 2 var isitprime = true while < number {     if number % == 0 {         isitprime = false         break     } } print(isitprime) 

refactoring

you can write similar logic using functional programming

let number = 5 let upperlimit = int(double(number).squareroot()) let isprime = !(2..<upperlimit).contains { number % $0 == 0 } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -