Input: N, the integer to be factored, which must be neither a prime number nor a perfect square.
Output: a non-trivial factor of N.
The algorithm:
Initialize
Repeat
until
is a perfect square.
Initialize
Repeat
until
.
Then
is a non-trivial factor of
.
Example:
N=11111
P0=105 Q0=1 Q1=86
P1=67 Q1=86 Q2=77
P2=87 Q2=77 Q3=46
P3=97 Q3=46 Q4=37
P4=88 Q4=37 Q5=91
P5=94 Q5=91 Q6=25
Here Q6 is a perfect square
P0=104 Q0=5 Q1=59
P1=73 Q1=59 Q2=98
P2=25 Q2=98 Q3=107
P3=82 Q3=107 Q4=41
P4=82
Here P3=P4
gcd(11111, 82) = 41, which is a factor of 11111.
Reference: 2005, Stephen S. McMath