| Читайте также: 
 | 
Пусть 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)) ≤
 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.
 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 до
 +1 до  . Те числа, на которые наложился «0» хотя бы одного решета, отсеиваются. После отсева остается достаточно небольшое количество чисел – кандидатов в x. Для каждого такого числа вычисляется x 2, z= x2 – n и y=
. Те числа, на которые наложился «0» хотя бы одного решета, отсеиваются. После отсева остается достаточно небольшое количество чисел – кандидатов в x. Для каждого такого числа вычисляется x 2, z= x2 – n и y=  . Если y 2 =z, то числа a=x+y, b=x—y являются делителями числа n.
. Если 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 до
 +1=17 до  =140.
 =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.
 =11, y 2=121= z.
Тогда a=x+y =31, b=x—y =9.
Ответ: 279=31·9.
Дата добавления: 2015-09-07; просмотров: 264 | Нарушение авторских прав
| <== предыдущая страница | | | следующая страница ==> | 
| Теорема Диемитко. | | | Травмы груди |