| 41561 |      1 | package body Sqrt is
 | 
|  |      2 | 
 | 
|  |      3 |    function Isqrt(N: Natural) return Natural
 | 
|  |      4 |    is
 | 
|  |      5 |      R: Natural;
 | 
|  |      6 |    begin
 | 
|  |      7 |       R := 0;
 | 
|  |      8 |       loop
 | 
|  |      9 |          --# assert R * R <= N;
 | 
|  |     10 |          exit when N - R * R < 2 * R + 1;
 | 
|  |     11 |          R := R + 1;
 | 
|  |     12 |       end loop;
 | 
|  |     13 |       return R;
 | 
|  |     14 |    end Isqrt;
 | 
|  |     15 | 
 | 
|  |     16 | end Sqrt;
 |