# 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";
?>
```