Algorytm Fermata to metoda faktoryzacji czyli rozkładu liczby na czynniki pierwsze. Znajduje dzielniki liczb złożonych bliskie pierwiastkowi kwadratowemu. Dlatego też, tworząc klucze kryptograficzne oparte na liczbach pierwszych, unika się liczb złożonych będących iloczynem niewiele różniących się liczb, aby nie ułatwiać zadania osobom próbującym złamać szyfr za pomocą algorytmu Fermata.
Algorytm Fermata
Wejście: liczba N

Wyjście: dzielnik liczby N najbliższy pierwiastkowi


Jeśli N jest kwadratem liczby naturalnej

   return sqrt(N);  /*Znaleziono dzielnik*/


w przeciwnym razie

   r := \[\lfloor sqrt(N) \rfloor  \];

   e := r^2 - N;

   u := 2r + 1; v := 1;

   Dopóki nie znaleziono dzielnika

      Jeśli  e=0

         return (u-v)/2; /*Znaleziono dzielnik*/


      w przeciwnym razie

         Dopóki e<>0

            Dopóki e<0

               e:=e+u;

               u:=u+2;

            Dopóki e>0

               e:=e-v;

               v:=v+2;


Publikacja wraz ze zdjęciami jest udostępniona w Encyklopedii "Zgapedia" części portalu zgapa.pl. Treść objęta jest licencją GNU FDL Wolnej Dokumentacji w wersji 1.3 lub dowolnej pózniejszej opublikowanej przez Free Software Foundation i została ona opracowana na podstawie Wikipedii, tutaj możesz znaleźć artykuł źródłowy oraz autorów. Warunki użytkowania Encyklopedii znajdziesz na tej stronie.