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

Content deleted Content added
Not a robot (talk | contribs)
Add CLU
Not a robot (talk | contribs)
→‎{{header|MAD}}: Change this to use the quadratic residue method
Line 2,142: Line 2,142:


=={{header|MAD}}==
=={{header|MAD}}==

{{incorrect|MAD| <br><br> The algorithm used is not the one that is mandated to be used by the task's requirements: <br><br> finding the integer square root by using a &nbsp;<u>quadratic residue</u>&nbsp; method &nbsp; (as shown my the pseudo-code). <br><br>}}

<lang MAD> NORMAL MODE IS INTEGER
<lang MAD> NORMAL MODE IS INTEGER
Line 2,151: Line 2,148:
INTERNAL FUNCTION(X)
INTERNAL FUNCTION(X)
ENTRY TO ISQRT.
ENTRY TO ISQRT.
X0 = X/2
Q = 1
WHENEVER X0.E.0, FUNCTION RETURN X
FNDPW4 WHENEVER Q.LE.X
STEP X1 = (X0 + X/X0)/2
Q = Q * 4
WHENEVER X1.GE.X0, FUNCTION RETURN X0
TRANSFER TO FNDPW4
X0 = X1
END OF CONDITIONAL
TRANSFER TO STEP
Z = X
R = 0
FNDRT WHENEVER Q.G.1
Q = Q / 4
T = Z - R - Q
R = R / 2
WHENEVER T.GE.0
Z = T
R = R + Q
END OF CONDITIONAL
TRANSFER TO FNDRT
END OF CONDITIONAL
FUNCTION RETURN R
END OF FUNCTION
END OF FUNCTION