Interested Article - Метод разложения Эйлера

Метод разложения Эйлера — это техника факторизации числа путём записи его в виде суммы двух квадратов двумя разными путями. Например, число 1000009 {\displaystyle 1000009} можно записать как 1000 2 + 3 2 {\displaystyle 1000^{2}+3^{2}} или как 972 2 + 235 2 {\displaystyle 972^{2}+235^{2}} и метод Эйлера даёт разложение 1000009 = 293 3413 {\displaystyle 1000009=293\cdot 3413} .

История

Идею, что два различных представления нечётного положительного числа могут привести к разложению, впервые высказал Марен Мерсенн . Однако он не применялся интенсивно, пока сто лет позже метод не стал применять Эйлер. Торжеством метода, который теперь носит имя Эйлера, стало разложение на множители числа 1000009 {\displaystyle 1000009} , которое считалось до этого простым, даже хотя оно не являлось псевдопростым по всем главным тестам простоты.

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

Недостатки

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

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

Теоретический базис

Тождество Брахмагупты — Фибоначчи утверждает, что произведение двух сумм двух квадратов является суммой двух квадратов. Метод Эйлера опирается на эту теорему, но может рассматриваться как обратный теореме подход, если дано n = a 2 + b 2 = c 2 + d 2 {\displaystyle n=a^{2}+b^{2}=c^{2}+d^{2}} , мы ищем разложение n {\displaystyle n} на произведение двух квадратов.

Сначала мы выводим, что

a 2 c 2 = d 2 b 2 {\displaystyle a^{2}-c^{2}=d^{2}-b^{2}}

и разлагаем обе части на множители

( a c ) ( a + c ) = ( d b ) ( d + b ) {\displaystyle (a-c)(a+c)=(d-b)(d+b)} (1)

Теперь пусть k = НОД ( a - c , d - b ), а h = НОД( a + c , d + b ), так что существуют некоторые числа l , m , l , m {\displaystyle l,m,l',m'} , для которых

  • ( a c ) = k l {\displaystyle (a-c)=kl} ,
  • ( d b ) = k m {\displaystyle (d-b)=km} , НОД( l , m ) = 1
  • ( a + c ) = h m {\displaystyle (a+c)=hm'} ,
  • ( d + b ) = h l {\displaystyle (d+b)=hl'} , НОД( l , m ) = 1

После подстановки в (1) получаем

k l h m = k m h l {\displaystyle klhm'=kmhl'}

После сокращения общих множителей получим

l m = l m {\displaystyle lm'=l'm}

Теперь используем факт, что ( l , m ) {\displaystyle (l,m)} и ( l , m ) {\displaystyle \left(l',m'\right)} взаимно просты, так что получаем

  • l = l {\displaystyle l=l'}
  • m = m {\displaystyle m=m'}

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

  • ( a c ) = k l {\displaystyle (a-c)=kl}
  • ( d b ) = k m {\displaystyle (d-b)=km}
  • ( a + c ) = h m {\displaystyle (a+c)=hm}
  • ( d + b ) = h l {\displaystyle (d+b)=hl}

Теперь мы видим, что m = НОД( a + c , d - b ) и l = НОД( a - c , d + b )

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

( k 2 + h 2 ) ( l 2 + m 2 ) = ( k l h m ) 2 + ( k m + h l ) 2 = ( ( a c ) ( a + c ) ) 2 + ( ( d b ) + ( d + b ) ) 2 = ( 2 c ) 2 + ( 2 d ) 2 = 4 n , {\displaystyle \left(k^{2}+h^{2}\right)\left(l^{2}+m^{2}\right)=\left(kl-hm\right)^{2}+(km+hl)^{2}={\bigl (}(a-c)-(a+c){\bigr)}^{2}+{\bigl (}(d-b)+(d+b){\bigr)}^{2}=(2c)^{2}+(2d)^{2}=4n,}
( k 2 + h 2 ) ( l 2 + m 2 ) = ( k l + h m ) 2 + ( k m h l ) 2 = ( ( a c ) + ( a + c ) ) 2 + ( ( d b ) ( d + b ) ) 2 = ( 2 a ) 2 + ( 2 b ) 2 = 4 n . {\displaystyle \left(k^{2}+h^{2}\right)\left(l^{2}+m^{2}\right)=(kl+hm)^{2}+(km-hl)^{2}={\bigl (}(a-c)+(a+c){\bigr)}^{2}+{\bigl (}(d-b)-(d+b){\bigr)}^{2}=(2a)^{2}+(2b)^{2}=4n.}

Так как каждый множитель является суммой двух квадратов, один из них должен содержать оба чётных числа — либо ( k , h ) {\displaystyle (k,h)} , либо ( l , m ) {\displaystyle (l,m)} . Без потери общности будем считать, что числа в паре ( k , h ) {\displaystyle (k,h)} чётны. Разложение превращается в

n = ( ( k 2 ) 2 + ( h 2 ) 2 ) ( l 2 + m 2 ) . {\displaystyle n=\left(\left({\tfrac {k}{2}}\right)^{2}+\left({\tfrac {h}{2}}\right)^{2}\right)\left(l^{2}+m^{2}\right).\,} .

Пример

Дано: 1000009 = 1000 2 + 3 2 = 972 2 + 235 2 {\displaystyle \ 1000009=1000^{2}+3^{2}=972^{2}+235^{2}}

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

a = 1000 (A) a c = 28 НОД[A,C] k = 4
b = 3 (B) a + c = 1972 НОД[B,D] h = 34
c = 972 (C) d b = 232 l = 7
d = 235 (D) d + b = 238 m = 58

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

1000009 = [ ( 4 2 ) 2 + ( 34 2 ) 2 ] ( 7 2 + 58 2 ) {\displaystyle 1000009=\left[\left({\frac {4}{2}}\right)^{2}+\left({\frac {34}{2}}\right)^{2}\right]\cdot \left(7^{2}+58^{2}\right)\,}
= ( 2 2 + 17 2 ) ( 7 2 + 58 2 ) {\displaystyle =\left(2^{2}+17^{2}\right)\cdot \left(7^{2}+58^{2}\right)\,}
= ( 4 + 289 ) ( 49 + 3364 ) {\displaystyle =(4+289)\cdot (49+3364)\,}
= 293 3413 {\displaystyle =293\cdot 3413\,}

Примечания

Литература

  • Oystein Ore. Euler's Factorization Method // . — 1988. — С. –64. — ISBN 0-486-65620-9 .
  • James McKee. Turning Euler's Factoring Method into a Factoring Algorithm // Bulletin of the London Mathematical Society. — 1996. — Т. 4 , вып. 28 . — С. 351–355 . — doi : .


Same as Метод разложения Эйлера