Isqrt (integer square root) of X: Difference between revisions

Added non-locals version
(Ada version)
(Added non-locals version)
Line 1,151:
task1 cr task2 bye
</lang>
This version of the core word does not require locals.
<lang>: isqrt-mod ( n -- sqrt rem)
>r 0 1 begin dup r@ > 0= while 4 * repeat
begin \ find a power of 4 greater than TORS
dup 1 > \ compute while greater than unity
while
2/ 2/ swap over over + negate r@ + \ integer divide by 4
dup 0< if drop 2/ else r> drop >r 2/ over + then swap
repeat drop r> ( sqrt rem)
;</lang>
{{Out}}
<pre>
Line 1,169 ⟶ 1,179:
21 747,359,260
</pre>
 
=={{header|Fortran}}==
<lang fortran>MODULE INTEGER_SQUARE_ROOT
374

edits