function mul(a,b)
{
x=0;
repeat N times
{
shiftright ( a -> carry, 1 bit)
if (carry)
{
x += b;
}
shiftleft ( b <- 0, 1 bit)
}
return x;
}
function sqrt(x)
{
r=0; y=0;
repeat N times
{
shiftleft ( y <- x < 00, 2 bits)
shiftleft ( r <- 0, 1 bit)
if (x > r)
{
r++;
x -= r;
r++;
}
}
return r;
}