The Quadratic Sieve Algorithm