|
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;
|