Finds a factor for large input N using the Pollard-Rho
factorization method.  Inefficient for small N.


This program "factors" large N by the Pollard-Rho method.

More specifically, it factors N into integers that may
not be prime.  This is most efficient when N has few 
large prime factors, thus finding any factor is useful.

When N has many small factors, trial division should be
used first; often the program will simply return N itself
in these cases.

Examples:     Input		Output
		256		256

	     63001=251^2	63001

	        251753		1003 & 251

Modifying the program to check for found-factors more
often will make this more efficient for small N and less 
efficient for large N.  You could change
"If mod(i2,10)==0" to 
"If mod(i2,4)==0", for example.

The program uses the included subroutine SuMult, which
multiplies X and Y (mod N) for numbers where X*Y is too
large for the calculator to store without losing the
less-significant digits.  SuMult uses Head's algorithm.

Programs written by Prof. Mark Janeba, Dept. of Math,
Willamette Univ, Salem, OR 97301  
(internet: mjaneba@willamette.edu)
