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

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -