# Simple check for square root in a loop using integers alone

There was a situation where I couldn't get to use decimal / floating numbers in a variable or like in `sqrt($n)`.

To check for a prime number, we need to check all odd numbers till the square root of a number for modulus 0. If `n mod i` is zero then it's not prime.

This checks until `sqrt($n)` which is mostly has a fraction which was I couldn't make use of.

```
<?php
$n = 101;
$isPrime = TRUE;

if ($n % 2 == 0) $isPrime = FALSE;

for ($i = 3; $i <= sqrt($n); $i += 2)
{
    if ($n % $i == 0)
    {
        $isPrime = FALSE;
    }    
}

if ($isPrime)
    echo "$n is Prime\n";
else
    echo "$n is not Prime\n";
?>
```
So we have to check till `n` which is waste of iterations. So, instead, we can break the loop if the square of the looping variable (which still will be an integer) is greater than `n`.
```
<?php
$n = 101;
$isPrime = TRUE;

if ($n % 2 == 0) $isPrime = FALSE;

for ($i = 3; $i < $n; $ i+= 2)
{
    if ($i * $i >= $n) break; # This is the check
    
    if ($n % $i == 0)
    {
        $isPrime = FALSE;
    }    
}

if ($isPrime)
    echo "$n is Prime\n";
else
    echo "$n is not Prime\n";
?>
```
