1
A better algorithm for factoring odd positive integers is .
Let $n= ab$ be an odd composite number. Prove that $n$ can be written as the difference of two perfect squares:
\begin{equation*} n = x^2 - y^2 = (x - y)(x + y). \end{equation*}Consequently, a positive odd integer can be factored exactly when we can find integers $x$ and $y$ such that $n = x^2 - y^2\text{.}$
Write a program to implement the following factorization algorithm based on the observation in part (a). The expression
ceiling(sqrt(n))
means the smallest integer greater than or equal to the square root of $n\text{.}$ Write another program to do factorization using trial division and compare the speed of the two algorithms. Which algorithm is faster and why?
x := ceiling(sqrt(n)) y := 1