      Fermat's Algorithm for finding factors of a number near the square
root of a number..... until a multiprecision program is found, this has a limit
of the number to be factored < 10^12 or thereabouts.....
     Any comments about the code itself (suggestions....speed improvements, etc
) would be greatly appreciated as I would like to 'catch up' to the tricks of
the trade in HP-28S programming.

    Hope someone out there finds this useful.....

 << -> n
   << n square-root FLOOR 'sqrt' STO    :comment replace square root with
      2 sqrt * 1 + 'u' STO              :the symbol that is on the calculator
      1 'v' STO
      sqrt DUP * n - 'r' STO
      WHILE r 0 <> REPEAT
         IF r 0 > THEN
           WHILE r 0 > REPEAT
             r v - 'r' STO
             v 2 + 'v' STO
           END
         END
      IF r 0 < THEN
         r u + 'r' STO
         u 2 + 'u' STO
      END
   END
   u v + 2 - 2 /
   u v - 2 /
   >>
   { 'r' 'v' 'u' 'sqrt' } PURGE
>>


      STACK:
in:                                out:
     1: Number to be factored           1: first factor
                                        2: second factor

-------
********************************************************************
*       J.J.        *             JJL101@psuvm.bitnet              *
*                   *    Penn State Center for Academic Computing  *
*    John Lehett    *          Computational Mathematics           *
********************************************************************
