Читайте также:
|
|
Пусть n – число, которое надо факторизовать. Как и метод Ферма, данный метод ищет целые числа x, y: n=x 2 —y 2, но подход к поиску несколько иной. Поиск числа x осуществляется не среди всех чисел подходящего размера. Перед началом перебора производится отсев некоторых чисел.
Принцип отсева вытекает из следующих рассуждений: Возьмем небольшое число m и рассмотрим полную систему вычетов Z m ={0, 1, 2, …, m —1}. Среди чисел из Z m некоторые числа являются квадратами (то есть квадратичными вычетами), а другие не являются. Если m – простое число, то квадратов столько же, сколько неквадратов. Если m – составное, то квадратов несколько меньше. В общем случае,
P(s Q(m)) ≤ .
Если число не является квадратичным вычетом по какому-то модулю m, то оно не является квадратом в Z, поэтому число y 2 следует искать среди тех чисел, которые являются квадратами в Z m.
В методе квадратичного решета берут несколько небольших попарно простых модулей m 1, m 2, …, mk. Для каждого такого модуля составляют квадратичное решето (двоичный вектор S m) следующим образом:
Для каждого x Z m вычисляют x 2 mod m и z =(x 2 —n) mod m. Если z является квадратом по модулю m, то S m (x)=1, иначе S m (x)=0. Проверка того, является ли z квадратом по модулю m, производится путем сверки с вычисленными x 2 mod m.
X | … | m –1 | |||
x2 mod m | 22 mod m | … | (m –1) 2 mod m | ||
z = x2 – n mod m | z 2 | … | zm —1 |
После того, как все решёта построены, начинается отсев кандидатов x. Решёта накладываются на последовательность чисел x от +1 до . Те числа, на которые наложился «0» хотя бы одного решета, отсеиваются. После отсева остается достаточно небольшое количество чисел – кандидатов в x. Для каждого такого числа вычисляется x 2, z= x2 – n и y= . Если y 2 =z, то числа a=x+y, b=x—y являются делителями числа n.
Пример:
n =279.
Построим решёта по модулям 4, 5 и 7:
x | ||||
x2 mod 4 | ||||
Z = x2 –279 mod 4 | ||||
S4 |
x | |||||
x2 mod 5 | |||||
z = x2 –279 mod 5 | |||||
S5 |
x | |||||||
x2 mod 7 | |||||||
z = x2 –279 mod 7 | |||||||
S7 |
Теперь, когда мы построили три решета, наложим их на последовательность чисел от +1=17 до =140.
Поскольку 17 mod 4 = 1, то наложение решета S4 начнем с S4(1),
17 mod 5 = 2, то наложение решета S5 начнем с S5(2),
17 mod 7 = 3, то наложение решета S7 начнем с S7(3).
x | ||||||||||||||||||
S4 | ||||||||||||||||||
S5 | ||||||||||||||||||
S7 |
Среди чисел от 17 до 34 остались 20, 22, 28,
Проверим их:
x =20, x 2=400, z=x 2 —n =121, y = =11, y 2=121= z.
Тогда a=x+y =31, b=x—y =9.
Ответ: 279=31·9.
Дата добавления: 2015-09-07; просмотров: 264 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Теорема Диемитко. | | | Травмы груди |