Розклад числа на прості множники

Тип работы:
Реферат
Предмет:
Разное


Узнать стоимость новой

Детальная информация о работе

Выдержка из работы

Реферат на тему:

Розклад числа на прості множники

, де pi — взаємно прості числа, ki xF0B3xF0201.

Задача перевірки числа на простоту є простішою за задачу факторизації. Тому перед розкладанням числа на прості множники слід перевірити число на простоту.

Задача. Розбиття числа. Дано натуральне число n. Представити його у вигляді n = a * b, де a, b — натуральні числа, більші за 1 (не обов’язково прості).

Алгоритм Полард — ро факторизації числа

Нехай n — натуральне число, яке треба розкласти на множники. Алгоритм Полард — ро дає можливість знайти нетривіальний дільник числа n.

Побудуємо послідовність елементів xi наступним чином:

+ 1) mod n, i > 0

Алгоритм факторизації

Вхід: натуральне число n.

Вихід: нетривіальний дільник d числа n.

a xF0ACxF0202, b xF0ACxF0202;

for i xF0ACxF0201, 2, … do

begin

a xF0ACxF020xF028a2 + 1) mod n; b xF0ACxF020xF028b2 + 1) mod n; b xF0ACxF020xF028b2 + 1) mod n;

d xF0ACxF020НСД (a — b, n);

if 1 < d < n return (d);

else return (FALSE); // розв’язку не знайдено

end;

Алгоритм Полард — ро обчислення дискретних логарифмів

Нехай G — циклічна група з порядком n (n — просте). Розіб'ємо елементи групи G на три підмножини S1, S2 та S3, які мають приблизно однакову потужність. При цьому необхідне виконання умови: 1 xF0CFxF020S2. Визначимо послідовність елементів xi наступним чином:

, i xF0B3xF0200 (1)

-

x00B2

-

,

.

J

z

|

x20AC

x00B8

¼

¾

A

AE

E

I

O

O

O

U

®

°

x00B2

o

oe

o

u

послідовності ci та di, що задовольняють умові

та визначаються наступним чином:

, i xF0B3xF0200 (2)

та

, i xF0B3xF0200 (3)

. Логарифмуючи останню рівність за основою a, матимемо:

(di — d2i) * logab xF0BAxF020(c2i — ci) mod n

Якщо di xF0B9 d2i (mod n), то це рівняння може бути ефективно розв’язано для обчислення logab.

Алгоритм обчислення дискретного логарифму

Вхід: генератор циклічної групи G з порядком n (n — просте) та елемент b xF0CExF020G.

Вихід: дискретний логарифм x = logab.

x0 xF0ACxF0201, c0 xF0ACxF0200, d0 xF0ACxF0200.

for i xF0AC 1, 2, … do

begin

За значеннями xi-1, ci-1, di-1 та x2i-2, c2i-2, d2i-2 обчислити значення xi, ci, di та x2i, c2i, d2i використовуючи формули (1), (2), (3).

if (xi = x2i) then

begin

r xF0ACxF020(di — d2i) mod n;

if (r = 0) then return (FALSE); // розв’язку не знайдено

x xF0AC r -1 (ci — c2i) mod n;

return (x);

end;

end;

.

ПоказатьСвернуть
Заполнить форму текущей работой