PlanetMath (more info)
 Math for the people, by the people. Sponsor PlanetMath
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
Revision difference : Fermat method
Version current Version 2
The {\em Fermat method} is a factorization algorithm for odd integers that tries to represent them as the difference of two square numbers. The {\em Fermat method} is a factorization algorithm for odd integers that tries to represent them as the difference of two square numbers.
Call the Fermat method algorithm with an integer $n = 2x + 1$. Call the Fermat method algorithm with an integer $n = 2x + 1$.
\begin{enumerate} \begin{enumerate}
\item Initialize the iterator $i = \lceil \sqrt{n} \rceil$ and test cap at $\sqrt{i^2 - n}$. \item Initialize the iterator $i = \lceil \sqrt{n} \rceil$ and test cap at $\sqrt{i^2 - n}$.
\item Compute $j = \sqrt{i^2 - n}$. \item Compute $j = \sqrt{i^2 - n}$.
\item Test if $j$ is an integer. If it is, break out of subroutine and return $i - j$. \item Test if $j$ is an integer. If it is, break out of subroutine and return $i - j$.
\item Increment iterator $i$ once. If $i < \frac{n + 9}{6}$, go to step 2. \item Increment iterator $i$ once. If $i < \frac{n + 9}{6}$, go to step 2.
\item Return $n$. \item Return $n$.
\end{enumerate} \end{enumerate}
For example, $n = 221$. The square root is approximately 15, so that's what we set our iterator's initial state to. The test cap is 39. For example, $n = 221$. The square root is approximately 15, so that's what we set our iterator's initial state to. The test cap is 39.
At $i = 15$, we find that $\sqrt{15^2 - 221} = 2$, clearly an integer. At $i = 15$, we find that $\sqrt{15^2 - 221} = 2$, clearly an integer.
Then, $15 - 2 = 13$ and $15 + 2 = 17$. By multiplication, we verify that $221 = 13 \cdot 17$, indeed. By trial division, this would have taken 15 test divisions. Then, $15 - 2 = 13$ and $15 + 2 = 17$. By multiplication, we verify that $221 = 13 \cdot 17$, indeed. By trial division, this would have taken 15 test divisions.
However, there are integers for which trial division performs much better than the Fermat method, such as numbers of the form $3p$ where $p$ is an odd prime greater than 3. However, there are integers for which trial division performs much better than the Fermat method, such as numbers of the form $3p$ where $p$ is an odd prime greater than 3.
\begin{thebibliography}{1} \begin{thebibliography}{1}
\bibitem{rc} R. Crandall \& C. Pomerance, {\it Prime Numbers: A Computational Perspective}, Springer, NY, 2001: 5.1 \bibitem{rc} R. Crandall \& C. Pomerance, {\it Prime Numbers: A Computational Perspective}, Springer, NY, 2001: 5.1
\end{thebibliography} \end{thebibliography}