How to get the square root rounded down to the nearest integer of a positive integer in PHP

1 Answer

0 votes
function mySqrt($n) {
    if ($n == 0 || $n == 1) {
        return $n;
    }
 
    $start = 1;
    $end = $n;
 
    while ($start <= $end) {
        $mid = $start + ($end - $start) / 2;
         
        if ($mid * $mid > $n) {
            $end = $mid - 1;
        }
        elseif ($mid * $mid == $n) {
            return $mid;
        } else {
            $start = $mid + 1;
        }
    }
 
    return floor($end);
}
 
echo mySqrt(240000); // 489.897
 
  
  
/*
run:
  
489
  
*/

 



answered May 12, 2024 by avibootz
edited May 13, 2024 by avibootz

Related questions

...