Finding primes
So let’s now see an example where we can put our while loop to use, type the program below and execute it. Change the value of number and see. This program finds if a number is prime or not.
number = 71
counter = 2
while number % counter != 0
counter += 1
end
if number != counter
print(number, " is not prime")
else
print(number, " is prime")
end
Output:
71 is prime
Let’s see how it works. If you know math, then you would know that primes are divisible only by 1 and it self. So if any number is prime then it gives a non zero reminder if it divided by any other number other than itself or 1. In the above program that’s what we do. We have a variable counter and we set it to 2 here counter = 2, next we have this code block:
while number % counter != 0
counter += 1
end
now look at the condition, if the number is prime and not 2, this condition number % counter != 0 will be true, and if you are wondering != stands for, it stands for not equal to in programming. So if the condition is true, the code between while and end executes, hence counter now becomes 3 by executing counter += 1, and once again 71 % 3 is not zero and so again counter increments and in next iteration it is 71 % 4 and so on. The loop ends when counter is 71, where 71 % 71 is 0 and hence number % counter != 0 fails and the program control comes out of the while.
It (the program execution) now encounters this:
if number != counter
print(number, " is not prime")
else
print(number, " is prime")
end
Here in the above piece of code if the number is not equal to counter we print it’s not a prime, but when it is, we print is as prime.
The notebook for this blog can be found here: https://gitlab.com/data-science-with-julia/code/-/blob/master/while.ipynb.