home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / armbob / armbob_1 / ARMBOB / !ArmBob / progs / intsqrt < prev    next >
Encoding:
Text File  |  1992-04-07  |  404 b   |  33 lines

  1. sqroot (N)
  2. {
  3.  local k2, u, v, u2, n;
  4.  if ( 2 > N) return (N);
  5.  u = N;
  6.  k2 = 0;
  7.  while (u >>= 2) k2++;
  8.  u = 1 << k2;
  9.  v = u;
  10.  u2 = u << k2;
  11.  while (k2--)
  12.  {
  13.   v >>= 1;
  14.   n = (u + u + v)<<k2;
  15.   n += u2;
  16.   if (n <= N)
  17.   {
  18.    u += v;
  19.    u2 = n;
  20.   }
  21.  }
  22.  return (u);
  23. }
  24.  
  25. main()
  26. {
  27.  print("Positive integer :");
  28.  x = val(input());
  29.  print("Integer part of square root is ",
  30.          sqroot(x),
  31.          "\n");
  32. }
  33.