Jump to content

Метод факторизации Эйлера

Метод факторизации Эйлера это метод факторизации числа путем записи его в виде суммы двух квадратов двумя разными способами. Например, число можно записать как или как и метод Эйлера дает факторизацию .

Идея о том, что два различных представления нечетного положительного целого числа могут привести к факторизации, по-видимому, была впервые предложена Марином Мерсенном . Однако широкое применение он получил только сто лет спустя Эйлера. Его самым знаменитым применением метода, который теперь носит его имя, было факторизация числа , которое, по-видимому, ранее считалось простым, хотя по каким-либо основным критериям простоты оно не является псевдопростым .

Метод факторизации Эйлера более эффективен, чем метод Ферма, для целых чисел, множители которых не расположены близко друг к другу, и потенциально намного более эффективен, чем пробное деление, если можно достаточно легко найти представления чисел в виде суммы двух квадратов. Методы, используемые для поиска представлений чисел в виде сумм двух квадратов, по существу такие же, как и для поиска разностей квадратов в методе факторизации Ферма .

Недостаток и ограничение

[ редактировать ]

Большим недостатком метода факторизации Эйлера является то, что его нельзя применять для факторизации целого числа, при этом любой простой множитель формы 4 k + 3 встречается в нечетной степени при его простой факторизации, поскольку такое число никогда не может быть суммой двух квадратов. . Четные нечетные составные числа вида 4 k + 1 часто являются произведением двух простых чисел вида 4 k + 3 (например, 3053 = 43 × 71) и снова не могут быть разложены методом Эйлера.

Эта ограниченная применимость сделала метод факторизации Эйлера неподходящим для компьютерных факторизации алгоритмов , поскольку любой пользователь, пытающийся факторизовать случайное целое число, вряд ли будет знать, действительно ли метод Эйлера может быть применен к рассматриваемому целому числу. Лишь сравнительно недавно были предприняты попытки превратить метод Эйлера в компьютерные алгоритмы для использования со специальными числами, где, как известно, метод Эйлера может быть применен.

Теоретическая основа

[ редактировать ]

Тождество Брахмагупты -Фибоначчи гласит, что произведение двух сумм двух квадратов является суммой двух квадратов. Метод Эйлера основан на этой теореме, но его можно рассматривать как обратное, учитывая мы находим как произведение сумм двух квадратов.

Сначала сделайте вывод, что

и учтите обе стороны, чтобы получить

(1)

Теперь позвольте и так что существуют некоторые константы удовлетворяющий

  • ,
  • ,

  • ,
  • ,

Подстановка их в уравнение (1) дает

Отмена общих факторов доходности

Теперь, используя тот факт, что и являются парами относительно простых чисел, мы находим, что

Так

Теперь мы видим это и

Применяя тождество Брахмагупты–Фибоначчи, получаем

Поскольку каждый множитель представляет собой сумму двух квадратов, один из них должен содержать оба четных числа: либо или . Без ограничения общности предположим, что пара четный. Тогда факторизация становится

Рабочий пример

[ редактировать ]

С:

мы имеем из формулы выше:

а = 1000 (А) а - с = 28 k = НОД[A,C] = 4
б = 3 (Б) а + с = 1972 г. ч = НОД[B,D] = 34
с = 972 (В) d b = 232 l = НОД[A,D] = 14
д = 235 (Д) д + б = 238 м = НОД[B,C] = 116

Таким образом,

Псевдокод

[ редактировать ]
function Euler_factorize(int n) -> list[int]
   if is_prime(n) then
       print("Number is not factorable")
       exit function
   for-loop from a=1 to a=ceiling(sqrt(n))
       b2 = n - a*a
       b = floor(sqrt(b2))
       if b*b==b2
           break loop preserving a,b
   if a*a+b*b!=n then
       print("Failed to find any expression for n as sum of squares")
       exit function
   for-loop from c=a+1 to c=ceiling(sqrt(n))
       d2 = n - c*c
       d = floor(sqrt(d2))
       if d*d==d2 then
           break loop preserving c,d
   if c*c+d*d!=n then
       print("Failed to find a second expression for n as sum of squares")
       exit function
   A = c-a, B = c+a
   C = b-d, D = b+d 
   k = GCD(A,C)//2, h = GCD(B,D)//2
   l = GCD(A,D)//2, m = GCD(B,C)//2
   factor1 = k*k + h*h
   factor2 = l*l + m*m
   return list[ factor1, factor2 ]
  • Оре, Эйстейн (1988). «Метод факторизации Эйлера» . Теория чисел и ее история . Курьерская корпорация. стр. 59–64 . ISBN  978-0-486-65620-5 .
  • Макки, Джеймс (1996). «Превращение метода факторинга Эйлера в алгоритм факторинга». Бюллетень Лондонского математического общества . 4 (28): 351–355. дои : 10.1112/blms/28.4.351 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bfac8f202c1f2a42b961b625532084de__1717387620
URL1:https://arc.ask3.ru/arc/aa/bf/de/bfac8f202c1f2a42b961b625532084de.html
Заголовок, (Title) документа по адресу, URL1:
Euler's factorization method - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)